diff --git a/source/blender/blenkernel/BKE_curves.hh b/source/blender/blenkernel/BKE_curves.hh index 35115e4fc65..32475706068 100644 --- a/source/blender/blenkernel/BKE_curves.hh +++ b/source/blender/blenkernel/BKE_curves.hh @@ -859,6 +859,8 @@ CurvesGeometry curves_copy_curve_selection(const CurvesGeometry &curves, const IndexMask &curves_to_copy, const AttributeFilter &attribute_filter); +CurvesGeometry curves_new_no_attributes(int point_num, int curve_num); + std::array calculate_type_counts(const VArray &types); /* -------------------------------------------------------------------- */ diff --git a/source/blender/blenkernel/BKE_pointcloud.hh b/source/blender/blenkernel/BKE_pointcloud.hh index 78a695db656..2ceb32eb6ee 100644 --- a/source/blender/blenkernel/BKE_pointcloud.hh +++ b/source/blender/blenkernel/BKE_pointcloud.hh @@ -46,6 +46,8 @@ struct PointCloudRuntime { MEM_CXX_CLASS_ALLOC_FUNCS("PointCloudRuntime"); }; +PointCloud *pointcloud_new_no_attributes(int totpoint); + } // namespace blender::bke void *BKE_pointcloud_add(Main *bmain, const char *name); diff --git a/source/blender/blenkernel/intern/curves_geometry.cc b/source/blender/blenkernel/intern/curves_geometry.cc index eb01593c0f8..4e03b63b0eb 100644 --- a/source/blender/blenkernel/intern/curves_geometry.cc +++ b/source/blender/blenkernel/intern/curves_geometry.cc @@ -1430,6 +1430,14 @@ void CurvesGeometry::remove_attributes_based_on_types() } } +CurvesGeometry curves_new_no_attributes(int point_num, int curve_num) +{ + CurvesGeometry curves(0, curve_num); + curves.point_num = point_num; + CustomData_free_layer_named(&curves.point_data, "position", 0); + return curves; +} + /** \} */ /* -------------------------------------------------------------------- */ diff --git a/source/blender/blenkernel/intern/pointcloud.cc b/source/blender/blenkernel/intern/pointcloud.cc index 416ded2fe59..c18608380f6 100644 --- a/source/blender/blenkernel/intern/pointcloud.cc +++ b/source/blender/blenkernel/intern/pointcloud.cc @@ -403,3 +403,15 @@ void BKE_pointcloud_batch_cache_free(PointCloud *pointcloud) BKE_pointcloud_batch_cache_free_cb(pointcloud); } } + +namespace blender::bke { + +PointCloud *pointcloud_new_no_attributes(int totpoint) +{ + PointCloud *pointcloud = BKE_pointcloud_new_nomain(0); + pointcloud->totpoint = totpoint; + CustomData_free_layer_named(&pointcloud->pdata, "position", 0); + return pointcloud; +} + +} // namespace blender::bke