[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12761] trunk/blender/source/blender: Another Proxy Armature bugfix:
Ton Roosendaal
ton at blender.org
Sun Dec 2 19:33:15 CET 2007
Revision: 12761
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12761
Author: ton
Date: 2007-12-02 19:33:14 +0100 (Sun, 02 Dec 2007)
Log Message:
-----------
Another Proxy Armature bugfix:
- Library referencing didn't add the new local Ipo for constraints
- Proxy command didn't set the driver object in constraint ipo to be
the new proxy object.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/object.c
trunk/blender/source/blender/blenloader/intern/readfile.c
Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c 2007-12-02 17:51:49 UTC (rev 12760)
+++ trunk/blender/source/blender/blenkernel/intern/object.c 2007-12-02 18:33:14 UTC (rev 12761)
@@ -1037,7 +1037,7 @@
{
bPoseChannel *chan;
- copy_pose(&obn->pose, ob->pose, 1);
+ copy_pose(&obn->pose, ob->pose, 1); /* 1 = copy constraints */
for (chan = obn->pose->chanbase.first; chan; chan=chan->next){
bConstraint *con;
@@ -1049,6 +1049,14 @@
ListBase targets = {NULL, NULL};
bConstraintTarget *ct;
+ if(con->ipo) {
+ IpoCurve *icu;
+ for(icu= con->ipo->curve.first; icu; icu= icu->next) {
+ if(icu->driver && icu->driver->ob==ob)
+ icu->driver->ob= obn;
+ }
+ }
+
if (cti && cti->get_constraint_targets) {
cti->get_constraint_targets(con, &targets);
@@ -1302,6 +1310,7 @@
/* skip constraints, constraintchannels, nla? */
+
ob->type= target->type;
ob->data= target->data;
id_us_plus((ID *)ob->data); /* ensures lib data becomes LIB_EXTERN */
Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c 2007-12-02 17:51:49 UTC (rev 12760)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c 2007-12-02 18:33:14 UTC (rev 12761)
@@ -7585,6 +7585,10 @@
bConstraint *curcon;
for (curcon=lb->first; curcon; curcon=curcon->next) {
+
+ if (curcon->ipo)
+ expand_doit(fd, mainvar, curcon->ipo);
+
switch (curcon->type) {
case CONSTRAINT_TYPE_NULL:
break;
More information about the Bf-blender-cvs
mailing list