diff options
author | Ton Roosendaal <ton@blender.org> | 2009-01-05 22:32:04 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-01-05 22:32:04 +0300 |
commit | 833cc9c0c8e78d94f669cf238be0cc6582ce1219 (patch) | |
tree | 2ab4a4507a27c9f2eac8f0bc12fa761502bdbfa4 /source/blender/editors/space_view3d | |
parent | 3aae2de7734e13c8e98e7dc85483d1ba8c461f50 (diff) |
2.5
- Armature editmode back
- Armature pose and editmode selecting with mouse back
- Posemode only works with 3d window header now.
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r-- | source/blender/editors/space_view3d/drawarmature.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_header.c | 21 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_select.c | 5 |
3 files changed, 18 insertions, 10 deletions
diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c index 5cd7461e7ad..6f341c6a6fe 100644 --- a/source/blender/editors/space_view3d/drawarmature.c +++ b/source/blender/editors/space_view3d/drawarmature.c @@ -1414,7 +1414,7 @@ static void draw_pose_dofs(Object *ob) if (bone->flag & BONE_SELECTED) { if (bone->layer & arm->layer) { if (pchan->ikflag & (BONE_IK_XLIMIT|BONE_IK_ZLIMIT)) { - if (pose_channel_in_IK_chain(ob, pchan)) { + if (ED_pose_channel_in_IK_chain(ob, pchan)) { float corner[4][3], posetrans[3], mat[4][4]; float phi=0.0f, theta=0.0f, scale; int a, i; diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index c2aea73b2f3..ff07df36764 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -62,10 +62,11 @@ #include "BKE_screen.h" #include "BKE_utildefines.h" /* for VECCOPY */ -#include "ED_screen.h" +#include "ED_armature.h" #include "ED_object.h" #include "ED_mesh.h" #include "ED_util.h" +#include "ED_screen.h" #include "ED_types.h" #include "WM_api.h" @@ -5306,7 +5307,8 @@ static void do_view3d_buttons(bContext *C, void *arg, int event) Scene *scene= CTX_data_scene(C); ScrArea *sa= CTX_wm_area(C); View3D *v3d= sa->spacedata.first; - Object *ob= OBACT; + Base *basact= scene->basact; + Object *ob= basact->object; Object *obedit = CTX_data_edit_object(C); EditMesh *em= NULL; int bit, ctrl=0, shift=0; // XXX shift arg? @@ -5367,8 +5369,9 @@ static void do_view3d_buttons(bContext *C, void *arg, int event) v3d->flag &= ~V3D_MODE; // XXX exit_paint_modes(); -// XXX if(ob) exit_posemode(); /* exit posemode for active object */ - if(obedit) ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* exit editmode and undo */ + ED_armature_exit_posemode(basact); + if(obedit) + ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* exit editmode and undo */ } else if (v3d->modeselect == V3D_EDITMODE_SEL) { if(!obedit) { @@ -5409,7 +5412,8 @@ static void do_view3d_buttons(bContext *C, void *arg, int event) if (!(G.f & G_WEIGHTPAINT) && (ob && ob->type == OB_MESH) ) { v3d->flag &= ~V3D_MODE; // XXX exit_paint_modes(); - if(obedit) ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* exit editmode and undo */ + if(obedit) + ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* exit editmode and undo */ // XXX set_wpaint(); } @@ -5418,9 +5422,10 @@ static void do_view3d_buttons(bContext *C, void *arg, int event) if (ob) { v3d->flag &= ~V3D_MODE; - if(obedit) ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* exit editmode and undo */ - -// XXX enter_posemode(); + if(obedit) + ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* exit editmode and undo */ + + ED_armature_enter_posemode(basact); } } else if(v3d->modeselect == V3D_PARTICLEEDITMODE_SEL){ diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 88e716a0ea6..e1cc1f65c15 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -1060,7 +1060,7 @@ static void mouse_select(bContext *C, short *mval, short extend, short obcenter) } if(has_bones && basact) { - if(0) {// XXX do_pose_selectbuffer(basact, buffer, hits) ) { /* then bone is found */ + if(ED_do_pose_selectbuffer(scene, basact, buffer, hits, extend) ) { /* then bone is found */ /* we make the armature selected: not-selected active object in posemode won't work well for tools */ @@ -1539,6 +1539,9 @@ static int view3d_select_invoke(bContext *C, wmOperator *op, wmEvent *event) if(obedit) { if(obedit->type==OB_MESH) mouse_mesh(C, mval, extend); + else if(obedit->type==OB_ARMATURE) + mouse_armature(C, mval, extend); + } else mouse_select(C, mval, extend, 0); |