Fix T94837: curve tilt on a 2-point-curve is wrong
2-point-curves are treated separately from 3plus-point-curves (assume a lot of the twisting reduction can be skipped, so there is a dedicated function for single segment curves). And while using the 3plus-point-curves function [`make_bevel_list_3D`] would actually work in this case, the dedicated function `make_bevel_list_segment_3D` would only consider the tilt of the second point and would just copy over the quat to the first point as well. Dont see a reason for this, now consider the first point's tilt as well. Maniphest Tasks: T94837 Differential Revision: https://developer.blender.org/D13813
This commit is contained in:
parent
6ea0ecdc51
commit
a6d70eecf4
Notes:
blender-bot
2024-04-11 14:26:06 +02:00
Referenced by issue #94837, Tilt works strangely in a poly curve (or other type with U resolution of 1) with only two control points Referenced by issue #77348, Blender LTS: Maintenance Task 2.83
|
@ -2533,12 +2533,15 @@ static void make_bevel_list_segment_3D(BevList *bl)
|
|||
normalize_v3(bevp1->dir);
|
||||
|
||||
vec_to_quat(bevp1->quat, bevp1->dir, 5, 1);
|
||||
|
||||
axis_angle_to_quat(q, bevp1->dir, bevp1->tilt);
|
||||
mul_qt_qtqt(bevp1->quat, q, bevp1->quat);
|
||||
normalize_qt(bevp1->quat);
|
||||
|
||||
copy_v3_v3(bevp2->dir, bevp1->dir);
|
||||
copy_qt_qt(bevp2->quat, bevp1->quat);
|
||||
vec_to_quat(bevp2->quat, bevp2->dir, 5, 1);
|
||||
axis_angle_to_quat(q, bevp2->dir, bevp2->tilt);
|
||||
mul_qt_qtqt(bevp2->quat, q, bevp2->quat);
|
||||
normalize_qt(bevp2->quat);
|
||||
}
|
||||
|
||||
/* only for 2 points */
|
||||
|
|
Loading…
Reference in New Issue