[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12809] trunk/blender:

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Dec 6 20:44:18 CET 2007


Revision: 12809
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12809
Author:   blendix
Date:     2007-12-06 20:44:17 +0100 (Thu, 06 Dec 2007)

Log Message:
-----------

Bugfix for IK locked axes with an initial rotation, gave wrong
starting angle in some cases, but wasn't always noticeable due
to the IK solver changing it anyway.

Bugfix for hidden bones in pose mode still being active, and
preventing other bones from becoming active.

Modified Paths:
--------------
    trunk/blender/intern/iksolver/intern/IK_QSegment.cpp
    trunk/blender/source/blender/src/editarmature.c

Modified: trunk/blender/intern/iksolver/intern/IK_QSegment.cpp
===================================================================
--- trunk/blender/intern/iksolver/intern/IK_QSegment.cpp	2007-12-06 17:43:47 UTC (rev 12808)
+++ trunk/blender/intern/iksolver/intern/IK_QSegment.cpp	2007-12-06 19:44:17 UTC (rev 12809)
@@ -61,11 +61,11 @@
 	MT_Scalar t = sqrt(R[0][0]*R[0][0] + R[0][1]*R[0][1]);
 
     if (t > 16.0*MT_EPSILON) {
-		if (axis == 0) return atan2(R[1][2], R[2][2]);
+		if (axis == 0) return -atan2(R[1][2], R[2][2]);
         else if(axis == 1) return atan2(-R[0][2], t);
-        else return atan2(R[0][1], R[0][0]);
+        else return -atan2(R[0][1], R[0][0]);
     } else {
-		if (axis == 0) return atan2(-R[2][1], R[1][1]);
+		if (axis == 0) return -atan2(-R[2][1], R[1][1]);
         else if(axis == 1) return atan2(-R[0][2], t);
         else return 0.0f;
     }

Modified: trunk/blender/source/blender/src/editarmature.c
===================================================================
--- trunk/blender/source/blender/src/editarmature.c	2007-12-06 17:43:47 UTC (rev 12808)
+++ trunk/blender/source/blender/src/editarmature.c	2007-12-06 19:44:17 UTC (rev 12809)
@@ -2947,7 +2947,7 @@
 	if(arm->layer & bone->layer) {
 		if (bone->flag & BONE_SELECTED) {
 			bone->flag |= BONE_HIDDEN_P;
-			bone->flag &= ~BONE_SELECTED;
+			bone->flag &= ~(BONE_SELECTED|BONE_ACTIVE);
 		}
 	}
 	return 0;
@@ -2977,6 +2977,7 @@
 	if(arm->layer & bone->layer) {
 		if (~bone->flag & BONE_SELECTED) {
 			bone->flag |= BONE_HIDDEN_P;
+			bone->flag &= ~BONE_ACTIVE;
 		}
 	}
 	return 0;





More information about the Bf-blender-cvs mailing list