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-04 20:47:35 +0300
committerJohnny Matthews <johnny.matthews@gmail.com>2021-10-04 20:47:35 +0300
commit65b5023df457d1277588c554a1abc4bdb7eeab6e (patch)
tree0000a2beaacdff25dcb94fac0dd9905bb0fe69e3
parent076d797bda67efea6c977d424f0f89bec69fbadd (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)
-rw-r--r--source/blender/nodes/geometry/nodes/node_geo_curve_handle_type_selection.cc10
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);
}
}
}