Mesh: Use more efficient update tag when flipping faces #106250

Merged
Hans Goudey merged 1 commits from Jake-Faulkner/blender:Fix-106239 into main 2023-04-03 18:01:28 +02:00
3 changed files with 12 additions and 1 deletions

View File

@ -72,6 +72,11 @@ void BKE_mesh_tag_topology_changed(struct Mesh *mesh);
*/
void BKE_mesh_tag_edges_split(struct Mesh *mesh);
/**
* Call when face vertex order has changed but positions and faces haven't changed
*/
void BKE_mesh_tag_face_winding_changed(struct Mesh *mesh);
/* *** mesh.c *** */
struct BMesh *BKE_mesh_to_bmesh_ex(const struct Mesh *me,

View File

@ -243,6 +243,12 @@ void BKE_mesh_tag_edges_split(struct Mesh *mesh)
}
}
void BKE_mesh_tag_face_winding_changed(Mesh *mesh)
{
mesh->runtime->vert_normals_dirty = true;
mesh->runtime->poly_normals_dirty = true;
}
void BKE_mesh_tag_positions_changed(Mesh *mesh)
{
mesh->runtime->vert_normals_dirty = true;

View File

@ -61,7 +61,7 @@ void flip_faces(Mesh &mesh, const IndexMask &selection)
return true;
});
BKE_mesh_tag_topology_changed(&mesh);
BKE_mesh_tag_face_winding_changed(&mesh);
}
} // namespace blender::geometry