[Bf-blender-cvs] [ab1366464a1] temp-geometry-nodes-instances-api-v2: Merge branch 'master' into temp-geometry-nodes-instances-api-v2
Hans Goudey
noreply at git.blender.org
Mon Feb 15 04:16:28 CET 2021
Commit: ab1366464a159dea0e26f19a4f4d393284d50bf5
Author: Hans Goudey
Date: Sat Feb 13 21:06:44 2021 -0600
Branches: temp-geometry-nodes-instances-api-v2
https://developer.blender.org/rBab1366464a159dea0e26f19a4f4d393284d50bf5
Merge branch 'master' into temp-geometry-nodes-instances-api-v2
===================================================================
===================================================================
diff --cc source/blender/nodes/geometry/nodes/node_geo_attribute_randomize.cc
index df8c542330a,dc924ede3a1..91b6bbdafc3
--- a/source/blender/nodes/geometry/nodes/node_geo_attribute_randomize.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_attribute_randomize.cc
@@@ -190,15 -266,34 +266,36 @@@ static void randomize_attribute_on_comp
static void geo_node_random_attribute_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
+ const std::string attribute_name = params.get_input<std::string>("Attribute");
+ if (attribute_name.empty()) {
+ params.set_output("Geometry", geometry_set);
+ return;
+ }
const int seed = params.get_input<int>("Seed");
+ const NodeAttributeRandomize &storage = *(const NodeAttributeRandomize *)params.node().storage;
+ const CustomDataType data_type = static_cast<CustomDataType>(storage.data_type);
+ const GeometryNodeAttributeRandomizeMode operation =
+ static_cast<GeometryNodeAttributeRandomizeMode>(storage.operation);
+
+ geometry_set = geometry_set_realize_instances(geometry_set);
+ geometry_set_realize_instances_for_write(geometry_set);
+
if (geometry_set.has<MeshComponent>()) {
- randomize_attribute(geometry_set.get_component_for_write<MeshComponent>(), params, seed);
+ randomize_attribute_on_component(geometry_set.get_component_for_write<MeshComponent>(),
+ params,
+ attribute_name,
+ data_type,
+ operation,
+ seed);
}
if (geometry_set.has<PointCloudComponent>()) {
- randomize_attribute(geometry_set.get_component_for_write<PointCloudComponent>(), params, seed);
+ randomize_attribute_on_component(geometry_set.get_component_for_write<PointCloudComponent>(),
+ params,
+ attribute_name,
+ data_type,
+ operation,
+ seed);
}
params.set_output("Geometry", geometry_set);
diff --cc source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc
index 086eb6ec861,581c356742b..0addfaa8bf2
--- a/source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc
@@@ -618,14 -483,7 +628,15 @@@ static void geo_node_point_distribute_e
geometry_set_out.get_component_for_write<PointCloudComponent>();
point_component.replace(pointcloud);
- add_remaining_point_attributes(mesh_component, point_component, bary_coords, looptri_indices);
+ Map<std::string, AttributeInfo> attributes;
- gather_attribute_info<MeshComponent>(attributes, sets, {"position", "normal", "id"});
++ gather_attribute_info(
++ attributes, GeometryComponentType::Mesh, sets, {"position", "normal", "id"});
+ add_remaining_point_attributes(sets,
+ group_start_indices,
+ attributes,
+ point_component,
+ bary_coords_array,
+ looptri_indices_array);
params.set_output("Geometry", std::move(geometry_set_out));
}
More information about the Bf-blender-cvs
mailing list