== AutoIK - Fixes for MouseScroll Setting ==
authorJoshua Leung <aligorith@gmail.com>
Sun, 16 Dec 2007 00:59:06 +0000 (00:59 +0000)
committerJoshua Leung <aligorith@gmail.com>
Sun, 16 Dec 2007 00:59:06 +0000 (00:59 +0000)
* Added display of current chain-length setting to the header, when transforming with Auto-IK on

* Removed debug print accidentally left in

* Fixed compiler warning in buttons_object.c

source/blender/src/buttons_object.c
source/blender/src/transform.c
source/blender/src/transform_conversions.c

index ae259bf63729ad23ec0e9cd5f290ca215eee14b6..3c1a7680ed2c9b71efdc2e8a2d4faa1032880f5f 100644 (file)
@@ -937,29 +937,29 @@ static void draw_constraint (uiBlock *block, ListBase *list, bConstraint *con, s
                                else {
                                        strcpy (data->subtarget, "");
                                }
-
+                               
                                uiBlockEndAlign(block);
-
+                               
                                /* Settings */
                                uiBlockBeginAlign(block);
                                uiDefButBitS(block, TOG, CONSTRAINT_IK_TIP, B_CONSTRAINT_TEST, "Use Tail", *xco, *yco-92, 137, 19, &data->flag, 0, 0, 0, 0, "Include Bone's tail als last element in Chain");
-                               uiDefButI(block, NUM, B_CONSTRAINT_TEST, "ChainLen:", *xco, *yco-112,137,19, &data->rootbone, 0, 255, 0, 0, "If not zero, the amount of bones in this chain");
-
+                               uiDefButS(block, NUM, B_CONSTRAINT_TEST, "ChainLen:", *xco, *yco-112,137,19, &data->rootbone, 0, 255, 0, 0, "If not zero, the amount of bones in this chain");
+                               
                                uiBlockBeginAlign(block);
                                uiDefButF(block, NUMSLI, B_CONSTRAINT_TEST, "PosW ", *xco+147, *yco-92, 137, 19, &data->weight, 0.01, 1.0, 2, 2, "For Tree-IK: weight of position control for this target");
                                uiDefButBitS(block, TOG, CONSTRAINT_IK_ROT, B_CONSTRAINT_TEST, "Rot", *xco+147, *yco-112, 40,19, &data->flag, 0, 0, 0, 0, "Chain follows rotation of target");
                                uiDefButF(block, NUMSLI, B_CONSTRAINT_TEST, "W ", *xco+187, *yco-112, 97, 19, &data->orientweight, 0.01, 1.0, 2, 2, "For Tree-IK: Weight of orientation control for this target");
-
+                               
                                uiBlockBeginAlign(block);
-
+                               
                                uiDefButBitS(block, TOG, CONSTRAINT_IK_STRETCH, B_CONSTRAINT_TEST, "Stretch", *xco, *yco-137,137,19, &data->flag, 0, 0, 0, 0, "Enable IK stretching");
                                uiBlockBeginAlign(block);
                                uiDefButS(block, NUM, B_CONSTRAINT_TEST, "Iterations:", *xco+147, *yco-137, 137, 19, &data->iterations, 1, 10000, 0, 0, "Maximum number of solving iterations"); 
                                uiBlockEndAlign(block);
-
+                               
                                /* Pole Vector */
                                uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Pole Target:", *xco+147, *yco-24, 100, 18, NULL, 0.0, 0.0, 0.0, 0.0, ""); 
-
+                               
                                uiBlockBeginAlign(block);
                                uiDefIDPoinBut(block, test_obpoin_but, ID_OB, B_CONSTRAINT_CHANGETARGET, "OB:", *xco+147, *yco-44, 137, 19, &data->poletar, "Pole Target Object"); 
                                if (is_armature_target(data->poletar)) {
index 39937c609503633b97d0b8fb5e2b182f4529acf5..632af9e269bfbfdba883cb06f45bf1dd5baf069a 100644 (file)
@@ -2515,6 +2515,7 @@ void initTranslation(TransInfo *t)
 static void headerTranslation(TransInfo *t, float vec[3], char *str) {
        char tvec[60];
        char distvec[20];
+       char autoik[20];
        float dvec[3];
        float dist;
        
@@ -2535,24 +2536,35 @@ static void headerTranslation(TransInfo *t, float vec[3], char *str) {
                sprintf(distvec, "%.4e", dist);
        else
                sprintf(distvec, "%.4f", dist);
+               
+       if(t->flag & T_AUTOIK) {
+               short chainlen= G.scene->toolsettings->autoik_chainlen;
+               
+               if(chainlen)
+                       sprintf(autoik, "AutoIK-Len: %d", chainlen);
+               else
+                       strcpy(autoik, "");
+       }
+       else
+               strcpy(autoik, "");
 
        if (t->con.mode & CON_APPLY) {
                switch(t->num.idx_max) {
                case 0:
-                       sprintf(str, "D: %s (%s)%s %s", &tvec[0], distvec, t->con.text, t->proptext);
+                       sprintf(str, "D: %s (%s)%s %s  %s", &tvec[0], distvec, t->con.text, t->proptext, &autoik[0]);
                        break;
                case 1:
-                       sprintf(str, "D: %s   D: %s (%s)%s %s", &tvec[0], &tvec[20], distvec, t->con.text, t->proptext);
+                       sprintf(str, "D: %s   D: %s (%s)%s %s  %s", &tvec[0], &tvec[20], distvec, t->con.text, t->proptext, &autoik[0]);
                        break;
                case 2:
-                       sprintf(str, "D: %s   D: %s  D: %s (%s)%s %s", &tvec[0], &tvec[20], &tvec[40], distvec, t->con.text, t->proptext);
+                       sprintf(str, "D: %s   D: %s  D: %s (%s)%s %s  %s", &tvec[0], &tvec[20], &tvec[40], distvec, t->con.text, t->proptext, &autoik[0]);
                }
        }
        else {
                if(t->flag & T_2D_EDIT)
                        sprintf(str, "Dx: %s   Dy: %s (%s)%s %s", &tvec[0], &tvec[20], distvec, t->con.text, t->proptext);
                else
-                       sprintf(str, "Dx: %s   Dy: %s  Dz: %s (%s)%s %s", &tvec[0], &tvec[20], &tvec[40], distvec, t->con.text, t->proptext);
+                       sprintf(str, "Dx: %s   Dy: %s  Dz: %s (%s)%s %s  %s", &tvec[0], &tvec[20], &tvec[40], distvec, t->con.text, t->proptext, &autoik[0]);
        }
 }
 
@@ -2598,7 +2610,7 @@ static void applyTranslation(TransInfo *t, float vec[3]) {
 int Translation(TransInfo *t, short mval[2]) 
 {
        float tvec[3];
-       char str[200];
+       char str[250];
        
        if(t->flag & T_SHIFT_MOD) {
                float dvec[3];
index 26f1d54569b2f6a202aef32d300eef1ea8009253..9b2b563595d8c4a981cda60d96be4778d7130f7c 100644 (file)
@@ -719,7 +719,6 @@ static void pchan_autoik_adjust (bPoseChannel *pchan, short chainlen)
                                        data->rootbone= data->max_rootbone;
                                else
                                        data->rootbone= chainlen;
-                               printf("chainlen = %d, max = %d, new = %d\n", chainlen, data->max_rootbone, data->rootbone);
                        }
                }
        }