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:
2021-10-19 23:23:14 -05:00
parent fd7510984a
commit 6ed93391c4

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;
}
}