Commit: 3a1583972a1ccf24b543cad8f9fa7df4e6509938
Author: Hans Goudey
Date:   Mon Feb 6 16:15:35 2023 -0500
Branches: master
https://developer.blender.org/rB3a1583972a1ccf24b543cad8f9fa7df4e6509938

Fix T104256: Curve to points node skips curve domain attributes

7536abbe16bd8672ca38e2b8 forgot to port the curve domain attributes.

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

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

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

diff --git a/source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc 
b/source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc
index 42f93c31384..075ed8a6ce4 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc
@@ -79,6 +79,25 @@ static void fill_rotation_attribute(const Span<float3> 
tangents,
   });
 }
 
+static void copy_curve_domain_attributes(const AttributeAccessor 
curve_attributes,
+                                         MutableAttributeAccessor 
point_attributes)
+{
+  curve_attributes.for_all([&](const bke::AttributeIDRef &id,
+                               const bke::AttributeMetaData &meta_data) {
+    if (curve_attributes.is_builtin(id)) {
+      return true;
+    }
+    if (meta_data.domain != ATTR_DOMAIN_CURVE) {
+      return true;
+    }
+    point_attributes.add(id,
+                         ATTR_DOMAIN_POINT,
+                         meta_data.data_type,
+                         bke::AttributeInitVArray(curve_attributes.lookup(id, 
ATTR_DOMAIN_POINT)));
+    return true;
+  });
+}
+
 static PointCloud *pointcloud_from_curves(bke::CurvesGeometry curves,
                                           const AttributeIDRef &tangent_id,
                                           const AttributeIDRef &normal_id,
@@ -102,6 +121,8 @@ static PointCloud 
*pointcloud_from_curves(bke::CurvesGeometry curves,
   pointcloud->pdata = curves.point_data;
   CustomData_reset(&curves.point_data);
 
+  copy_curve_domain_attributes(curves.attributes(), 
pointcloud->attributes_for_write());
+
   return pointcloud;
 }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to