[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32020] trunk/blender/source/blender/ blenkernel/intern/constraint.c: bugfix [#22263] Child of constraint - only rotation

Campbell Barton ideasman42 at gmail.com
Mon Sep 20 08:47:35 CEST 2010


Revision: 32020
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32020
Author:   campbellbarton
Date:     2010-09-20 08:47:34 +0200 (Mon, 20 Sep 2010)

Log Message:
-----------
bugfix [#22263] Child of constraint - only rotation

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

Modified: trunk/blender/source/blender/blenkernel/intern/constraint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/constraint.c	2010-09-20 05:46:07 UTC (rev 32019)
+++ trunk/blender/source/blender/blenkernel/intern/constraint.c	2010-09-20 06:47:34 UTC (rev 32020)
@@ -850,7 +850,14 @@
 		 * the effect of this constraint (i.e.  owner is 'parented' to parent)
 		 */
 		copy_m4_m4(tempmat, cob->matrix);
-		mul_m4_m4m4(cob->matrix, tempmat, parmat); 
+		mul_m4_m4m4(cob->matrix, tempmat, parmat);
+
+		/* without this, changes to scale and rotation can change location
+		 * of a parentless bone or a disconnected bone. Even though its set
+		 * to zero above. */
+		if (!(data->flag & CHILDOF_LOCX)) cob->matrix[3][0]= tempmat[3][0];
+		if (!(data->flag & CHILDOF_LOCY)) cob->matrix[3][1]= tempmat[3][1];
+		if (!(data->flag & CHILDOF_LOCZ)) cob->matrix[3][2]= tempmat[3][2];	
 	}
 }
 





More information about the Bf-blender-cvs mailing list