42 if (mesh.faces_num == 0 || selection.is_empty()) {
50 selection.foreach_index(
GrainSize(1024), [&](
const int i) {
52 for (
const int j :
IndexRange(face.size() / 2)) {
53 const int a = face[j + 1];
54 const int b = face.last(j);
55 std::swap(corner_verts[a], corner_verts[
b]);
56 std::swap(corner_edges[a - 1], corner_edges[
b]);
69 selection.foreach_index(
GrainSize(512), [&](
const int i) {
70 for (
const int corner : faces[i]) {
84 if (
ELEM(iter.
name,
".corner_vert",
".corner_edge")) {
89 using T = decltype(dummy);
90 flip_corner_data(faces, selection, attribute.span.typed<T>());
95 mesh.tag_face_winding_changed();