[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26138] trunk/blender/source/blender/ blenkernel/intern/armature.c: Proxy Fix: drivers are now copied on proxy synchronization.

Brecht Van Lommel brecht at blender.org
Wed Jan 20 13:20:34 CET 2010


Revision: 26138
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26138
Author:   blendix
Date:     2010-01-20 13:20:34 +0100 (Wed, 20 Jan 2010)

Log Message:
-----------
Proxy Fix: drivers are now copied on proxy synchronization. Also for bones
on non-proxy protected layers, not sure if these should be done or not, it
depends a bit on preference.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/armature.c

Modified: trunk/blender/source/blender/blenkernel/intern/armature.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/armature.c	2010-01-20 11:32:11 UTC (rev 26137)
+++ trunk/blender/source/blender/blenkernel/intern/armature.c	2010-01-20 12:20:34 UTC (rev 26138)
@@ -61,6 +61,7 @@
 #include "BKE_depsgraph.h"
 #include "BKE_DerivedMesh.h"
 #include "BKE_displist.h"
+#include "BKE_fcurve.h"
 #include "BKE_global.h"
 #include "BKE_idprop.h"
 #include "BKE_library.h"
@@ -1480,6 +1481,7 @@
 	bPose *pose= ob->pose, *frompose= from->pose;
 	bPoseChannel *pchan, *pchanp, pchanw;
 	bConstraint *con;
+	AnimData *adt, *fromadt;
 	int error = 0;
 	
 	if (frompose==NULL) return;
@@ -1571,6 +1573,15 @@
 			pchan->custom= pchanp->custom;
 		}
 	}
+
+	/* copy drivers */
+	adt= BKE_animdata_from_id(&ob->id);
+	fromadt= BKE_animdata_from_id(&from->id);
+	if(!adt)
+		adt= BKE_id_add_animdata(&ob->id);
+
+	free_fcurves(&adt->drivers);
+	copy_fcurves(&adt->drivers, &fromadt->drivers);
 }
 
 static int rebuild_pose_bone(bPose *pose, Bone *bone, bPoseChannel *parchan, int counter)





More information about the Bf-blender-cvs mailing list