diff options
author | Johnny Matthews <johnny.matthews@gmail.com> | 2021-10-04 20:47:35 +0300 |
---|---|---|
committer | Johnny Matthews <johnny.matthews@gmail.com> | 2021-10-04 20:47:35 +0300 |
commit | 65b5023df457d1277588c554a1abc4bdb7eeab6e (patch) | |
tree | 0000a2beaacdff25dcb94fac0dd9905bb0fe69e3 /source | |
parent | 076d797bda67efea6c977d424f0f89bec69fbadd (diff) |
Fix: Geometry Nodes Handle Type Selection Fix
Fix the selection logic on the Handle Type Selection node to work
as intended:
(Left is Selected AND Left is ChosenType)
OR
(Right is Selected AND Right is ChosenType)
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/nodes/geometry/nodes/node_geo_curve_handle_type_selection.cc | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/source/blender/nodes/geometry/nodes/node_geo_curve_handle_type_selection.cc b/source/blender/nodes/geometry/nodes/node_geo_curve_handle_type_selection.cc index 093146d563e..a40e839cc02 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_curve_handle_type_selection.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_curve_handle_type_selection.cc @@ -79,12 +79,10 @@ static void select_by_handle_type(const CurveEval &curve, else { BezierSpline *b = static_cast<BezierSpline *>(spline.get()); for (int i : IndexRange(b->size())) { - if (mode & GeometryNodeCurveHandleMode::GEO_NODE_CURVE_HANDLE_LEFT) { - r_selection[offset++] = b->handle_types_left()[i] == type; - } - else if (mode & GeometryNodeCurveHandleMode::GEO_NODE_CURVE_HANDLE_RIGHT) { - r_selection[offset++] = b->handle_types_right()[i] == type; - } + r_selection[offset++] = (mode & GeometryNodeCurveHandleMode::GEO_NODE_CURVE_HANDLE_LEFT && + b->handle_types_left()[i] == type) || + (mode & GeometryNodeCurveHandleMode::GEO_NODE_CURVE_HANDLE_RIGHT && + b->handle_types_right()[i] == type); } } } |