diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2018-10-05 12:35:59 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2018-10-05 13:29:05 +0300 |
commit | 3c0736bc4b88bd4081ab25e2bd99908fb549ded1 (patch) | |
tree | 62f782d942a8e20fb32962f7341692477cd1ac19 /source/blender/draw/intern/draw_armature.c | |
parent | 8ce5f015dc0571c8c83ac046936dfaa874915662 (diff) |
Redefine the Relative custom B-Bone handle type to be more reasonable.
Specifically, it should always use the position of the custom handle
bone head, even when affecting the handle at the tail of the main bone,
and shouldn't apply the special handling for joining two B-Bones.
This handle type was unusably broken before a bug fix included in
recent changes, so it should be safe to break backward compatibility.
Diffstat (limited to 'source/blender/draw/intern/draw_armature.c')
-rw-r--r-- | source/blender/draw/intern/draw_armature.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/draw/intern/draw_armature.c b/source/blender/draw/intern/draw_armature.c index a2394a6716c..a73bddf880f 100644 --- a/source/blender/draw/intern/draw_armature.c +++ b/source/blender/draw/intern/draw_armature.c @@ -975,12 +975,13 @@ static void ebone_spline_preview(EditBone *ebone, float result_array[MAX_BBONE_S if (prev) { param.use_prev = true; - param.prev_bbone = (prev->segments > 1); if (ebone->bbone_prev_type == BBONE_HANDLE_RELATIVE) { zero_v3(param.prev_h); } else { + param.prev_bbone = (prev->segments > 1); + mul_v3_m4v3(param.prev_h, imat, prev->head); } @@ -992,12 +993,13 @@ static void ebone_spline_preview(EditBone *ebone, float result_array[MAX_BBONE_S if (next) { param.use_next = true; - param.next_bbone = (next->segments > 1); if (ebone->bbone_next_type == BBONE_HANDLE_RELATIVE) { copy_v3_fl3(param.next_h, 0.0f, param.length, 0.0); } else { + param.next_bbone = (next->segments > 1); + mul_v3_m4v3(param.next_h, imat, next->tail); } |