[Bf-blender-cvs] [8ffe20ffc9b] soc-2021-porting-modifiers-to-nodes-merge-by-distance: Changes based on review by Hans Goudey (HooglyBoogly)
Fabian Schempp
noreply at git.blender.org
Thu Sep 30 18:04:00 CEST 2021
Commit: 8ffe20ffc9bb539fe279b5268d3e5aaa57ba9ff2
Author: Fabian Schempp
Date: Thu Sep 30 18:03:54 2021 +0200
Branches: soc-2021-porting-modifiers-to-nodes-merge-by-distance
https://developer.blender.org/rB8ffe20ffc9bb539fe279b5268d3e5aaa57ba9ff2
Changes based on review by Hans Goudey (HooglyBoogly)
===================================================================
M source/blender/geometry/intern/pointcloud_merge_by_distance.cc
M source/blender/makesrna/intern/rna_nodetree.c
M source/blender/nodes/geometry/nodes/node_geo_merge_by_distance.cc
===================================================================
diff --git a/source/blender/geometry/intern/pointcloud_merge_by_distance.cc b/source/blender/geometry/intern/pointcloud_merge_by_distance.cc
index 19657046e7b..377d43c3898 100644
--- a/source/blender/geometry/intern/pointcloud_merge_by_distance.cc
+++ b/source/blender/geometry/intern/pointcloud_merge_by_distance.cc
@@ -104,22 +104,15 @@ PointCloud *pointcloud_merge_by_distance(PointCloudComponent &pointcloud_compone
copy_mask_vector.append(i);
}
}
- IndexMask copyMask(copy_mask_vector);
-
- // PointCloudComponent *src_pointcloud_component = (PointCloudComponent *)
- // pointcloud_component.copy(); const PointCloud &src_pointcloud =
- // *src_pointcloud_component->get_for_read();
-
- // PointCloud *result = BKE_pointcloud_new_nomain(copyMask.size());
- // pointcloud_component.replace(result);
+ IndexMask copy_mask(copy_mask_vector);
PointCloud *pointcloud = BKE_pointcloud_new_nomain(src_pointcloud.totpoint);
PointCloudComponent dst_component;
dst_component.replace(pointcloud, GeometryOwnershipType::Editable);
- for (const int i : copyMask.index_range()) {
- copy_v3_v3(pointcloud->co[i], src_pointcloud.co[copyMask[i]]);
- pointcloud->radius[i] = src_pointcloud.radius[copyMask[i]];
+ for (const int i : copy_mask.index_range()) {
+ copy_v3_v3(pointcloud->co[i], src_pointcloud.co[copy_mask[i]]);
+ pointcloud->radius[i] = src_pointcloud.radius[copy_mask[i]];
}
pointcloud_component.attribute_foreach(
@@ -135,9 +128,9 @@ PointCloud *pointcloud_merge_by_distance(PointCloudComponent &pointcloud_compone
fn::GMutableSpan dst_span = target_attribute.as_span();
fn::GSpan src_span = read_attribute->get_internal_span();
- for (const int i : copyMask.index_range()) {
+ for (const int i : copy_mask.index_range()) {
const fn::CPPType *type = bke::custom_data_type_to_cpp_type(meta_data.data_type);
- type->copy_assign(src_span[copyMask[i]], dst_span[i]);
+ type->copy_assign(src_span[copy_mask[i]], dst_span[i]);
}
target_attribute.save();
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 730ef457922..1f0c54c42c7 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -10636,6 +10636,7 @@ static void def_geo_string_to_curves(StructRNA *srna)
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
}
+/* Weld mode is only used when welding mesh data. */
const EnumPropertyItem rna_enum_geometry_nodes_weld_mode_items[] = {
{0, "ALL", 0, "All", "Full merge by distance"},
{1, "CONNECTED", 0, "Connected", "Only merge along the edges"},
diff --git a/source/blender/nodes/geometry/nodes/node_geo_merge_by_distance.cc b/source/blender/nodes/geometry/nodes/node_geo_merge_by_distance.cc
index b1304d77907..d1f125d78aa 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_merge_by_distance.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_merge_by_distance.cc
@@ -94,7 +94,8 @@ static void process_pointcloud(GeoNodeExecParams ¶ms,
selection_evaluator.evaluate();
const VArray_Span<bool> selection = selection_evaluator.get_evaluated<bool>(0);
- geometry::pointcloud_merge_by_distance(pointcloud_component, distance, selection);
+ pointcloud_component.replace(
+ geometry::pointcloud_merge_by_distance(pointcloud_component, distance, selection));
}
static void geo_node_merge_by_distance_exec(GeoNodeExecParams params)
More information about the Bf-blender-cvs
mailing list