[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17285] branches/animsys2/source/blender/ src: AnimSys2: Eulers for Bones Bugfixes

Joshua Leung aligorith at gmail.com
Sun Nov 2 12:01:47 CET 2008


Revision: 17285
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17285
Author:   aligorith
Date:     2008-11-02 12:01:45 +0100 (Sun, 02 Nov 2008)

Log Message:
-----------
AnimSys2: Eulers for Bones Bugfixes

* AutoIK did not work with euler rotations yet. The conversions were still only being done for quats.

* Fixed spelling errors in tooltips

Modified Paths:
--------------
    branches/animsys2/source/blender/src/drawview.c
    branches/animsys2/source/blender/src/transform_conversions.c

Modified: branches/animsys2/source/blender/src/drawview.c
===================================================================
--- branches/animsys2/source/blender/src/drawview.c	2008-11-02 10:04:57 UTC (rev 17284)
+++ branches/animsys2/source/blender/src/drawview.c	2008-11-02 11:01:45 UTC (rev 17285)
@@ -2061,8 +2061,8 @@
 	
 	/* rotation mode */
 	uiBlockBeginAlign(block);
-	uiDefButS(block, ROW, B_ARMATUREPANEL3, "Quaternion",160,110,70,19, &pchan->rotmode, 70, PCHAN_ROT_QUAT, 0, 0, "Rotations calculated using Quaternions (4 components, no Gimble Lock, hard to edit)");
-	uiDefButS(block, ROW, B_ARMATUREPANEL3, "Euler",230,110,70,19, &pchan->rotmode, 70, PCHAN_ROT_EUL, 0, 0, "Rotations calculated using Eulers (3 components, suffers from Gimble Lock, 'easy' to edit)");
+	uiDefButS(block, ROW, B_ARMATUREPANEL3, "Quaternion",160,110,70,19, &pchan->rotmode, 70, PCHAN_ROT_QUAT, 0, 0, "Rotations calculated using Quaternions (4 components, no Gimbal Lock, hard to edit)");
+	uiDefButS(block, ROW, B_ARMATUREPANEL3, "Euler",230,110,70,19, &pchan->rotmode, 70, PCHAN_ROT_EUL, 0, 0, "Rotations calculated using Eulers (3 components, suffers from Gimbal Lock, 'easy' to edit)");
 	uiBlockEndAlign(block);
 	
 	if (pchan->rotmode) {

Modified: branches/animsys2/source/blender/src/transform_conversions.c
===================================================================
--- branches/animsys2/source/blender/src/transform_conversions.c	2008-11-02 10:04:57 UTC (rev 17284)
+++ branches/animsys2/source/blender/src/transform_conversions.c	2008-11-02 11:01:45 UTC (rev 17285)
@@ -488,7 +488,7 @@
 				}
 				else {
 					Mat4CpyMat3(tmat, bone->bone_mat);
-
+					
 					VECCOPY(tmat[3], bone->head);
 					Mat4Invert(imat, tmat);
 				}
@@ -497,18 +497,25 @@
 				
 				/* apply and decompose, doesn't work for constraints or non-uniform scale well */
 				{
-					float rmat3[3][3], qmat[3][3], imat[3][3], smat[3][3];
+					float rmat3[3][3], qrmat[3][3], imat[3][3], smat[3][3];
 					
 					Mat3CpyMat4(rmat3, rmat);
 					
-					/* quaternion */
-					Mat3ToQuat(rmat3, parchan->quat);
+					/* rotation */
+					if (parchan->rotmode) 
+						Mat3ToEul(rmat3, parchan->eul);
+					else
+						Mat3ToQuat(rmat3, parchan->quat);
 					
 					/* for size, remove rotation */
 					/* causes problems with some constraints (so apply only if needed) */
 					if (data->flag & CONSTRAINT_IK_STRETCH) {
-						QuatToMat3(parchan->quat, qmat);
-						Mat3Inv(imat, qmat);
+						if (parchan->rotmode)
+							EulToMat3(parchan->eul, qrmat);
+						else
+							QuatToMat3(parchan->quat, qrmat);
+						
+						Mat3Inv(imat, qrmat);
 						Mat3MulMat3(smat, rmat3, imat);
 						Mat3ToSize(smat, parchan->size);
 					}





More information about the Bf-blender-cvs mailing list