Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gavrilov <angavrilov@gmail.com>2018-10-05 12:35:59 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2018-10-05 13:29:05 +0300
commit3c0736bc4b88bd4081ab25e2bd99908fb549ded1 (patch)
tree62f782d942a8e20fb32962f7341692477cd1ac19 /source/blender/draw/intern
parent8ce5f015dc0571c8c83ac046936dfaa874915662 (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')
-rw-r--r--source/blender/draw/intern/draw_armature.c6
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);
}