[Bf-blender-cvs] [5fe297df487] master: Fix: Set position node doesn't tag mesh normals dirty

Hans Goudey noreply at git.blender.org
Mon Dec 19 21:05:32 CET 2022


Commit: 5fe297df48729f7c6614b31e8873ce94d77d957a
Author: Hans Goudey
Date:   Mon Dec 19 13:59:33 2022 -0600
Branches: master
https://developer.blender.org/rB5fe297df48729f7c6614b31e8873ce94d77d957a

Fix: Set position node doesn't tag mesh normals dirty

Caused by b08301c865f42ab51b29efb. This also contains an optimization
compared to the previous version to avoid recalculating normals when
the entire mesh has moved by the same offset.

Reported by Demeter in chat.

===================================================================

M	source/blender/nodes/geometry/nodes/node_geo_set_position.cc

===================================================================

diff --git a/source/blender/nodes/geometry/nodes/node_geo_set_position.cc b/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
index ec8c82fc66d..2a56152a2b4 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
@@ -54,6 +54,12 @@ static void set_computed_position_and_offset(GeometryComponent &component,
                 }
               });
         });
+        if (in_offsets.is_single() && selection.size() == verts.size()) {
+          BKE_mesh_tag_coords_changed_uniformly(mesh);
+        }
+        else {
+          BKE_mesh_tag_coords_changed(mesh);
+        }
       }
       else {
         devirtualize_varray2(
@@ -66,6 +72,7 @@ static void set_computed_position_and_offset(GeometryComponent &component,
                     }
                   });
             });
+        BKE_mesh_tag_coords_changed(mesh);
       }
       break;
     }



More information about the Bf-blender-cvs mailing list