[Bf-blender-cvs] [e9ab6ff164c] temp-geometry-nodes-expandable-geometry-socket-prototype: support array in fill node for debugging purposes

Jacques Lucke noreply at git.blender.org
Fri Aug 6 14:36:29 CEST 2021


Commit: e9ab6ff164cf9b406e1427b54aa77ce72a9eb047
Author: Jacques Lucke
Date:   Fri Aug 6 13:37:29 2021 +0200
Branches: temp-geometry-nodes-expandable-geometry-socket-prototype
https://developer.blender.org/rBe9ab6ff164cf9b406e1427b54aa77ce72a9eb047

support array in fill node for debugging purposes

===================================================================

M	source/blender/nodes/geometry/nodes/node_geo_attribute_fill.cc

===================================================================

diff --git a/source/blender/nodes/geometry/nodes/node_geo_attribute_fill.cc b/source/blender/nodes/geometry/nodes/node_geo_attribute_fill.cc
index 389abe3b2aa..5cc0884e2fc 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_attribute_fill.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_attribute_fill.cc
@@ -100,28 +100,38 @@ static void fill_attribute(GeometryComponent &component, const GeoNodeExecParams
 
   switch (data_type) {
     case CD_PROP_FLOAT: {
-      const float value = params.get_input<float>("Value_001");
-      attribute->fill(&value);
+      const Array<float> values = params.get_input<Array<float>>("Value_001");
+      fn::GVArray_For_RepeatedGSpan values_repeated{attribute->size(), values.as_span()};
+      fn::GVArray_GSpan values_span{values_repeated};
+      attribute->set_all(values_span.data());
       break;
     }
     case CD_PROP_FLOAT3: {
-      const float3 value = params.get_input<float3>("Value");
-      attribute->fill(&value);
+      const Array<float3> values = params.get_input<Array<float3>>("Value");
+      fn::GVArray_For_RepeatedGSpan values_repeated{attribute->size(), values.as_span()};
+      fn::GVArray_GSpan values_span{values_repeated};
+      attribute->set_all(values_span.data());
       break;
     }
     case CD_PROP_COLOR: {
-      const ColorGeometry4f value = params.get_input<ColorGeometry4f>("Value_002");
-      attribute->fill(&value);
+      const Array<ColorGeometry4f> values = params.get_input<Array<ColorGeometry4f>>("Value_002");
+      fn::GVArray_For_RepeatedGSpan values_repeated{attribute->size(), values.as_span()};
+      fn::GVArray_GSpan values_span{values_repeated};
+      attribute->set_all(values_span.data());
       break;
     }
     case CD_PROP_BOOL: {
-      const bool value = params.get_input<bool>("Value_003");
-      attribute->fill(&value);
+      const Array<bool> values = params.get_input<Array<bool>>("Value_003");
+      fn::GVArray_For_RepeatedGSpan values_repeated{attribute->size(), values.as_span()};
+      fn::GVArray_GSpan values_span{values_repeated};
+      attribute->set_all(values_span.data());
       break;
     }
     case CD_PROP_INT32: {
-      const int value = params.get_input<int>("Value_004");
-      attribute->fill(&value);
+      const Array<int> values = params.get_input<Array<int>>("Value_004");
+      fn::GVArray_For_RepeatedGSpan values_repeated{attribute->size(), values.as_span()};
+      fn::GVArray_GSpan values_span{values_repeated};
+      attribute->set_all(values_span.data());
       break;
     }
     default:



More information about the Bf-blender-cvs mailing list