[Bf-blender-cvs] [fca94c5e0d6] master: Fix: Incorrect dirty normal tag after mesh translation
Hans Goudey
noreply at git.blender.org
Fri Jun 24 22:48:57 CEST 2022
Commit: fca94c5e0d6f8a98cb5fd3424141f5615f2445b2
Author: Hans Goudey
Date: Fri Jun 24 15:48:48 2022 -0500
Branches: master
https://developer.blender.org/rBfca94c5e0d6f8a98cb5fd3424141f5615f2445b2
Fix: Incorrect dirty normal tag after mesh translation
Mistake in 54182e4925de4ee. The dirty flag was always cleared,
but we only want to clear it after translating a mesh if it normals
were already non-dirty.
===================================================================
M source/blender/blenkernel/intern/mesh_runtime.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/mesh_runtime.cc b/source/blender/blenkernel/intern/mesh_runtime.cc
index d4bc47d5fd4..4521c519f45 100644
--- a/source/blender/blenkernel/intern/mesh_runtime.cc
+++ b/source/blender/blenkernel/intern/mesh_runtime.cc
@@ -268,10 +268,17 @@ void BKE_mesh_tag_coords_changed(Mesh *mesh)
void BKE_mesh_tag_coords_changed_uniformly(Mesh *mesh)
{
+ const bool vert_normals_were_dirty = BKE_mesh_vertex_normals_are_dirty(mesh);
+ const bool poly_normals_were_dirty = BKE_mesh_poly_normals_are_dirty(mesh);
+
BKE_mesh_tag_coords_changed(mesh);
/* The normals didn't change, since all vertices moved by the same amount. */
- BKE_mesh_poly_normals_clear_dirty(mesh);
- BKE_mesh_vertex_normals_clear_dirty(mesh);
+ if (!vert_normals_were_dirty) {
+ BKE_mesh_poly_normals_clear_dirty(mesh);
+ }
+ if (!poly_normals_were_dirty) {
+ BKE_mesh_vertex_normals_clear_dirty(mesh);
+ }
}
/** \} */
More information about the Bf-blender-cvs
mailing list