Curves *curve = component.get_for_write(); Span offsets(curve->geometry.curve_offsets, curve->geometry.curve_size); threading::parallel_for(selection.index_range(), 128, [&](IndexRange range) { for (const int i_curve : range) { CustomData custom_data = curve->geometry.point_data; for (const int i_layer : IndexRange(custom_data.totlayer)) { CustomDataLayer layer = custom_data.layers[i_layer]; attribute_math::convert_to_static_type((layer.type, [&](auto dummy) { using T = decltype(dummy); MutableSpan data( layer.data[offsets[i_curve], offsets[i_curve + 1] - offsets[i_curve]]); data.reverse(); }); } } }); component.replace(curve);