Merge branch 'blender-v4.0-release'
This commit is contained in:
@@ -448,15 +448,30 @@ static bke::CurvesGeometry convert_curves_to_bezier(
|
||||
bezier_to_bezier,
|
||||
nurbs_to_bezier);
|
||||
|
||||
for (bke::AttributeTransferData &attribute : generic_attributes) {
|
||||
bke::curves::copy_point_data(
|
||||
src_points_by_curve, dst_points_by_curve, unselected, attribute.src, attribute.dst.span);
|
||||
}
|
||||
|
||||
for (bke::AttributeTransferData &attribute : generic_attributes) {
|
||||
attribute.dst.finish();
|
||||
}
|
||||
|
||||
src_attributes.for_all(
|
||||
[&](const bke::AttributeIDRef &id, const bke::AttributeMetaData meta_data) {
|
||||
if (id.is_anonymous() && !propagation_info.propagate(id.anonymous_id())) {
|
||||
return true;
|
||||
}
|
||||
if (meta_data.domain != ATTR_DOMAIN_POINT) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const GVArraySpan src = *src_attributes.lookup(id, meta_data.domain);
|
||||
bke::GSpanAttributeWriter dst = dst_attributes.lookup_or_add_for_write_only_span(
|
||||
id, meta_data.domain, meta_data.data_type);
|
||||
|
||||
bke::curves::copy_point_data(
|
||||
src_points_by_curve, dst_points_by_curve, unselected, src, dst.span);
|
||||
dst.finish();
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
return dst_curves;
|
||||
}
|
||||
|
||||
@@ -613,15 +628,30 @@ static bke::CurvesGeometry convert_curves_to_nurbs(
|
||||
bezier_to_nurbs,
|
||||
nurbs_to_nurbs);
|
||||
|
||||
for (bke::AttributeTransferData &attribute : generic_attributes) {
|
||||
bke::curves::copy_point_data(
|
||||
src_points_by_curve, dst_points_by_curve, unselected, attribute.src, attribute.dst.span);
|
||||
}
|
||||
|
||||
for (bke::AttributeTransferData &attribute : generic_attributes) {
|
||||
attribute.dst.finish();
|
||||
}
|
||||
|
||||
src_attributes.for_all(
|
||||
[&](const bke::AttributeIDRef &id, const bke::AttributeMetaData meta_data) {
|
||||
if (id.is_anonymous() && !propagation_info.propagate(id.anonymous_id())) {
|
||||
return true;
|
||||
}
|
||||
if (meta_data.domain != ATTR_DOMAIN_POINT) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const GVArraySpan src = *src_attributes.lookup(id, meta_data.domain);
|
||||
bke::GSpanAttributeWriter dst = dst_attributes.lookup_or_add_for_write_only_span(
|
||||
id, meta_data.domain, meta_data.data_type);
|
||||
|
||||
bke::curves::copy_point_data(
|
||||
src_points_by_curve, dst_points_by_curve, unselected, src, dst.span);
|
||||
dst.finish();
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
return dst_curves;
|
||||
}
|
||||
|
||||
|
||||
@@ -1617,12 +1617,14 @@ class LazyFunctionForRepeatZone : public LazyFunction {
|
||||
0, params.get_input<ValueOrField<int>>(zone_info_.indices.inputs.main[0]).as_value());
|
||||
|
||||
/* Show a warning when the inspection index is out of range. */
|
||||
if (node_storage.inspection_index < 0 || node_storage.inspection_index >= iterations) {
|
||||
if (geo_eval_log::GeoTreeLogger *tree_logger = local_user_data.try_get_tree_logger(
|
||||
user_data)) {
|
||||
tree_logger->node_warnings.append(
|
||||
{repeat_output_bnode_.identifier,
|
||||
{NodeWarningType::Info, N_("Inspection index is out of range")}});
|
||||
if (node_storage.inspection_index > 0) {
|
||||
if (node_storage.inspection_index >= iterations) {
|
||||
if (geo_eval_log::GeoTreeLogger *tree_logger = local_user_data.try_get_tree_logger(
|
||||
user_data)) {
|
||||
tree_logger->node_warnings.append(
|
||||
{repeat_output_bnode_.identifier,
|
||||
{NodeWarningType::Info, N_("Inspection index is out of range")}});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user