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:
authorJohnny Matthews <johnny.matthews@gmail.com>2021-10-20 07:23:14 +0300
committerJohnny Matthews <johnny.matthews@gmail.com>2021-10-20 07:23:14 +0300
commit6ed93391c485ac3425e4d67981b4e71ba1d0eb5c (patch)
tree8553b5161b2748bfd079103fe49037e1fe3b05dc
parentfd7510984a6d472969436721031ae309ec4981a0 (diff)
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.
-rw-r--r--source/blender/nodes/geometry/nodes/node_geo_set_curve_handles.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/nodes/geometry/nodes/node_geo_set_curve_handles.cc b/source/blender/nodes/geometry/nodes/node_geo_set_curve_handles.cc
index cb1c57fa476..d7aaaffc7c6 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_set_curve_handles.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_set_curve_handles.cc
@@ -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;
}
}