diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-10-02 23:57:34 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-10-02 23:57:34 +0400 |
commit | 74c681330f2da09cbc5e409ea4cc61426681c027 (patch) | |
tree | d704a8eca70737ac032a70a4b5ee03cc7cb65cfb /source/blender/editors | |
parent | ccb7a81d8684a376bfd872db307ca4bcde887a92 (diff) |
fix [#28788] Scale using "Individual origins" in bones
works for rotate and scale
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/transform/transform.c | 12 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 2 |
2 files changed, 8 insertions, 6 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 8699bc88645..898785fd120 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -2612,7 +2612,9 @@ static void ElementResize(TransInfo *t, TransData *td, float mat[3][3]) { } else if (t->flag & T_EDIT) { - if(t->settings->selectmode & SCE_SELECT_FACE) { + if( (t->settings->selectmode & SCE_SELECT_FACE) || + (t->obedit && t->obedit->type == OB_ARMATURE)) + { copy_v3_v3(center, td->center); } else { @@ -2902,10 +2904,10 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short /* local constraint shouldn't alter center */ if (around == V3D_LOCAL) { - if (t->flag & (T_OBJECT|T_POSE)) { - center = td->center; - } - else if (t->settings->selectmode & SCE_SELECT_FACE) { + if ( (t->flag & (T_OBJECT|T_POSE)) || + (t->settings->selectmode & SCE_SELECT_FACE) || + (t->obedit && t->obedit->type == OB_ARMATURE)) + { center = td->center; } } diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index c3a249d69bc..e37435a0cd5 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -1194,7 +1194,7 @@ static void createTransArmatureVerts(TransInfo *t) if (ebo->flag & BONE_TIPSEL) { copy_v3_v3(td->iloc, ebo->tail); - copy_v3_v3(td->center, td->iloc); + copy_v3_v3(td->center, (t->around==V3D_LOCAL) ? ebo->head : td->iloc); td->loc= ebo->tail; td->flag= TD_SELECTED; if (ebo->flag & BONE_EDITMODE_LOCKED) |