Fix : Set Curve Handle Position Node Auto Convert

When trying to auto convert Vector to Free or Auto to Align, the
old handle positions needed to be baked in first.
This commit is contained in:
Johnny Matthews 2021-10-19 23:23:14 -05:00
parent fd7510984a
commit 6ed93391c4
1 changed files with 4 additions and 0 deletions

View File

@ -78,17 +78,21 @@ static void set_position_in_component(const GeometryNodeCurveHandleMode mode,
if (selection[current_mask] == current_point) {
if (mode & GEO_NODE_CURVE_HANDLE_LEFT) {
if (bezier.handle_types_left()[i] == BezierSpline::HandleType::Vector) {
bezier.ensure_auto_handles();
bezier.handle_types_left()[i] = BezierSpline::HandleType::Free;
}
else if (bezier.handle_types_left()[i] == BezierSpline::HandleType::Auto) {
bezier.ensure_auto_handles();
bezier.handle_types_left()[i] = BezierSpline::HandleType::Align;
}
}
else {
if (bezier.handle_types_right()[i] == BezierSpline::HandleType::Vector) {
bezier.ensure_auto_handles();
bezier.handle_types_right()[i] = BezierSpline::HandleType::Free;
}
else if (bezier.handle_types_right()[i] == BezierSpline::HandleType::Auto) {
bezier.ensure_auto_handles();
bezier.handle_types_right()[i] = BezierSpline::HandleType::Align;
}
}