diff options
author | Joshua Leung <aligorith@gmail.com> | 2009-07-21 08:21:07 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2009-07-21 08:21:07 +0400 |
commit | 93f2743b0f569f0e7b6d9d8c9cc5f0b5cd1bedfa (patch) | |
tree | 7a5e6911bc44386c7a24bcfc238a5efddda2c165 /source/blender/editors/armature | |
parent | 74fce51841dab8ef81a7eab58ef14a946dfc0043 (diff) |
2.5 - IK Constraint Tools + Constraint Editing Tweaks
* Add/Remove IK now works again using Shift-I and Ctrl-Alt-I as before. The code for this is now located in editconstraint.c for now...
* Adding constraints with automatically added targets works again. It's a relief that the old code still works (with a minor tweak)
Diffstat (limited to 'source/blender/editors/armature')
-rw-r--r-- | source/blender/editors/armature/armature_ops.c | 4 | ||||
-rw-r--r-- | source/blender/editors/armature/poseobject.c | 56 |
2 files changed, 2 insertions, 58 deletions
diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c index a8a342451cc..dcd22e3138c 100644 --- a/source/blender/editors/armature/armature_ops.c +++ b/source/blender/editors/armature/armature_ops.c @@ -253,8 +253,8 @@ void ED_keymap_armature(wmWindowManager *wm) WM_keymap_add_item(keymap, "POSE_OT_constraint_add_with_targets", CKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); WM_keymap_add_item(keymap, "POSE_OT_constraints_clear", CKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); - //WM_keymap_add_item(keymap, "POSE_OT_ik_add", IKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); - //WM_keymap_add_item(keymap, "POSE_OT_ik_clear", IKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); + WM_keymap_add_item(keymap, "POSE_OT_ik_add", IKEY, KM_PRESS, /*KM_CTRL|*/KM_SHIFT, 0); + WM_keymap_add_item(keymap, "POSE_OT_ik_clear", IKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); // XXX this should probably be in screen instead... here for testing purposes in the meantime... - Aligorith WM_keymap_verify_item(keymap, "ANIM_OT_insert_keyframe_menu", IKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index ccf82fbc7ac..16a9efc9023 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -85,13 +85,11 @@ /* ************* XXX *************** */ static int movetolayer_short_buts() {return 1;} -static int okee() {return 0;} static int pupmenu() {return 0;} static void waitcursor() {}; static void error() {}; static void BIF_undo_push() {} static void countall() {} -static void add_constraint() {} static void autokeyframe_pose_cb_func() {} /* ************* XXX *************** */ @@ -587,60 +585,6 @@ void POSE_OT_select_hierarchy(wmOperatorType *ot) } -void pose_add_IK(Scene *scene) -{ - Object *obedit= scene->obedit; // XXX context - Object *ob= OBACT; - - /* paranoia checks */ - if(!ob && !ob->pose) return; - if(ob==obedit || (ob->flag & OB_POSEMODE)==0) return; - - add_constraint(1); /* 1 means only IK */ -} - -/* context: all selected channels */ -void pose_clear_IK(Scene *scene) -{ - Object *obedit= scene->obedit; // XXX context - Object *ob= OBACT; - bArmature *arm= ob->data; - bPoseChannel *pchan; - bConstraint *con; - bConstraint *next; - - /* paranoia checks */ - if(!ob && !ob->pose) return; - if(ob==obedit || (ob->flag & OB_POSEMODE)==0) return; - - if(pose_has_protected_selected(ob, 0, 1)) - return; - - if(okee("Remove IK constraint(s)")==0) return; - - for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { - if(arm->layer & pchan->bone->layer) { - if(pchan->bone->flag & (BONE_ACTIVE|BONE_SELECTED)) { - - for(con= pchan->constraints.first; con; con= next) { - next= con->next; - if(con->type==CONSTRAINT_TYPE_KINEMATIC) { - BLI_remlink(&pchan->constraints, con); - free_constraint_data(con); - MEM_freeN(con); - } - } - pchan->constflag &= ~(PCHAN_HAS_IK|PCHAN_HAS_TARGET); - } - } - } - - DAG_object_flush_update(scene, ob, OB_RECALC_DATA); // and all its relations - - BIF_undo_push("Remove IK constraint(s)"); -} - - void pose_copy_menu(Scene *scene) { Object *obedit= scene->obedit; // XXX context |