[Bf-blender-cvs] [fac0723e92e] temp-geometry-nodes-fields: Add a special case for a selection span
Hans Goudey
noreply at git.blender.org
Thu Sep 2 22:57:45 CEST 2021
Commit: fac0723e92e451bc6c5937a41426d8f576bf89cb
Author: Hans Goudey
Date: Thu Sep 2 15:57:35 2021 -0500
Branches: temp-geometry-nodes-fields
https://developer.blender.org/rBfac0723e92e451bc6c5937a41426d8f576bf89cb
Add a special case for a selection span
This will probably end up being a utility used elsewhere,
so it's worth adding this case.
===================================================================
M source/blender/nodes/geometry/nodes/node_geo_set_position.cc
===================================================================
diff --git a/source/blender/nodes/geometry/nodes/node_geo_set_position.cc b/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
index a4d969efbf1..fb2e82664f6 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
@@ -37,9 +37,19 @@ static IndexMask index_mask_from_selection_varray(const VArray<bool> &selection,
}
return IndexRange(0);
}
- for (const int i : selection.index_range()) {
- if (selection[i]) {
- r_indices.append(i);
+ if (selection.is_span()) {
+ Span<bool> selection_span = selection.get_internal_span();
+ for (const int i : selection_span.index_range()) {
+ if (selection_span[i]) {
+ r_indices.append(i);
+ }
+ }
+ }
+ else {
+ for (const int i : selection.index_range()) {
+ if (selection[i]) {
+ r_indices.append(i);
+ }
}
}
return r_indices.as_span();
More information about the Bf-blender-cvs
mailing list