[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