[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