[Bf-blender-cvs] [6ed93391c48] master: Fix : Set Curve Handle Position Node Auto Convert

Johnny Matthews noreply at git.blender.org
Wed Oct 20 06:23:46 CEST 2021


Commit: 6ed93391c485ac3425e4d67981b4e71ba1d0eb5c
Author: Johnny Matthews
Date:   Tue Oct 19 23:23:14 2021 -0500
Branches: master
https://developer.blender.org/rB6ed93391c485ac3425e4d67981b4e71ba1d0eb5c

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.

===================================================================

M	source/blender/nodes/geometry/nodes/node_geo_set_curve_handles.cc

===================================================================

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



More information about the Bf-blender-cvs mailing list