[Bf-blender-cvs] [cd6eb654824] temp-geometry-nodes-fields-prototype: cleanup
Jacques Lucke
noreply at git.blender.org
Wed Aug 18 14:53:44 CEST 2021
Commit: cd6eb6548244e4d741ce04b7adfb8902ebd75507
Author: Jacques Lucke
Date: Wed Aug 18 14:44:16 2021 +0200
Branches: temp-geometry-nodes-fields-prototype
https://developer.blender.org/rBcd6eb6548244e4d741ce04b7adfb8902ebd75507
cleanup
===================================================================
M source/blender/nodes/geometry/nodes/node_geo_sample_mesh_surface.cc
===================================================================
diff --git a/source/blender/nodes/geometry/nodes/node_geo_sample_mesh_surface.cc b/source/blender/nodes/geometry/nodes/node_geo_sample_mesh_surface.cc
index 73d6871251c..6b1beaba2fd 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_sample_mesh_surface.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_sample_mesh_surface.cc
@@ -82,7 +82,7 @@ class SampleMeshSurfaceFunction : public fn::MultiFunction {
signature.single_output<float3>("Position");
signature.single_output<float3>("Normal");
signature.single_output<float>("Distance");
- signature.single_output<ColorGeometry4f>("Attribute");
+ signature.single_output<ColorGeometry4f>("Custom");
return signature.build();
}
@@ -94,11 +94,18 @@ class SampleMeshSurfaceFunction : public fn::MultiFunction {
MutableSpan<float3> sampled_normals = params.uninitialized_single_output<float3>(2, "Normal");
MutableSpan<float> sampled_distances = params.uninitialized_single_output<float>(3,
"Distance");
- MutableSpan<ColorGeometry4f> sampled_attribute =
- params.uninitialized_single_output<ColorGeometry4f>(4, "Attribute");
+ MutableSpan<ColorGeometry4f> sampled_custom =
+ params.uninitialized_single_output<ColorGeometry4f>(4, "Custom");
+
+ auto return_default = [&]() {
+ sampled_positions.fill_indices(mask, {0, 0, 0});
+ sampled_normals.fill_indices(mask, {0, 0, 0});
+ sampled_distances.fill_indices(mask, 0.0f);
+ sampled_custom.fill_indices(mask, {0, 0, 0, 1});
+ };
if (!geometry_set_.has_mesh()) {
- return this->return_default(mask, params);
+ return return_default();
}
const MeshComponent *mesh_component = geometry_set_.get_component_for_read<MeshComponent>();
@@ -107,7 +114,7 @@ class SampleMeshSurfaceFunction : public fn::MultiFunction {
GVArrayPtr attribute_ptr = mesh_component->attribute_try_get_anonymous_for_read(
*attribute_id_, ATTR_DOMAIN_CORNER, CD_PROP_COLOR, nullptr);
if (!attribute_ptr) {
- return this->return_default(mask, params);
+ return return_default();
}
GVArray_Typed<ColorGeometry4f> attribute{*attribute_ptr};
@@ -139,18 +146,9 @@ class SampleMeshSurfaceFunction : public fn::MultiFunction {
float3 bary_coords;
interp_weights_tri_v3(bary_coords, v1, v2, v3, nearest.co);
ColorGeometry4f final_col = attribute_math::mix3(bary_coords, col1, col2, col3);
- sampled_attribute[i] = final_col;
+ sampled_custom[i] = final_col;
}
}
-
- void return_default(IndexMask mask, fn::MFParams ¶ms) const
- {
- params.uninitialized_single_output<float3>(1, "Position").fill_indices(mask, float3{0, 0, 0});
- params.uninitialized_single_output<float3>(2, "Normal").fill_indices(mask, float3{0, 0, 0});
- params.uninitialized_single_output<float>(3, "Distance").fill_indices(mask, 0.0f);
- params.uninitialized_single_output<ColorGeometry4f>(4, "Attribute")
- .fill_indices(mask, ColorGeometry4f{0, 0, 0, 1});
- }
};
static void geo_node_sample_mesh_surface_exec(GeoNodeExecParams params)
More information about the Bf-blender-cvs
mailing list