Revision: 26152
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26152
Author: aligorith
Date: 2010-01-20 23:21:10 +0100 (Wed, 20 Jan 2010)
Log Message:
-----------
Proxy + Transforms Bugfix:
This commit fixes some update issues for some rig setups used for Durian, with
proxies not updating correctly during transforms.
The setup involves an armature that has been proxified, which deforms a mesh in
the group it came from. One of the bones in this armature is constrained to an
empty that was added in the shot file.
When the empty is moved around, the mesh does not deform in response to the
armature until the transform is confirmed.
This was because the depsgraph tagging was not comprehensive enough, since only
a few cached tags got restored (but not all). For now, full depsgraph tagging
is now performed for objects as they are transformed.
Modified Paths:
--------------
trunk/blender/source/blender/editors/transform/transform_generics.c
Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c
2010-01-20 21:21:05 UTC (rev 26151)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c
2010-01-20 22:21:10 UTC (rev 26152)
@@ -774,16 +774,6 @@
else {
int i;
- for(base= FIRSTBASE; base; base= base->next) {
- Object *ob= base->object;
-
- /* this flag is from depgraph, was stored in
initialize phase, handled in drawview.c */
- if(base->flag & BA_HAS_RECALC_OB)
- ob->recalc |= OB_RECALC_OB;
- if(base->flag & BA_HAS_RECALC_DATA)
- ob->recalc |= OB_RECALC_DATA;
- }
-
for (i = 0; i < t->total; i++) {
TransData *td = t->data + i;
Object *ob = td->ob;
@@ -804,11 +794,10 @@
autokeyframe_ob_cb_func(NULL, t->scene,
(View3D *)t->view, ob, t->mode);
}
- /* proxy exception */
- if(ob->proxy)
- ob->proxy->recalc |= ob->recalc;
- if(ob->proxy_group)
-
group_tag_recalc(ob->proxy_group->dup_group);
+ /* sets recalc flags fully, instead of flushing
existing ones
+ * otherwise proxies don't function correctly
+ */
+ DAG_id_flush_update(&ob->id, OB_RECALC);
}
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs