[Bf-blender-cvs] [cef2e95db1f] refactor-mesh-remove-pointers: Merge branch 'master' into refactor-mesh-remove-pointers

Hans Goudey noreply at git.blender.org
Tue Jul 19 03:37:23 CEST 2022


Commit: cef2e95db1fc4e7611f22938ef1efd7f9bedc977
Author: Hans Goudey
Date:   Mon Jul 18 20:36:20 2022 -0500
Branches: refactor-mesh-remove-pointers
https://developer.blender.org/rBcef2e95db1fc4e7611f22938ef1efd7f9bedc977

Merge branch 'master' into refactor-mesh-remove-pointers

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



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

diff --cc source/blender/blenkernel/intern/geometry_component_mesh.cc
index f9a3ce2185b,436868ba375..77ba15ce591
--- a/source/blender/blenkernel/intern/geometry_component_mesh.cc
+++ b/source/blender/blenkernel/intern/geometry_component_mesh.cc
@@@ -300,21 -292,20 +300,23 @@@ static void adapt_mesh_domain_corner_to
                                                    MutableSpan<T> r_values)
  {
    BLI_assert(r_values.size() == mesh.totedge);
 +  const Span<MPoly> polygons = mesh_polygons(mesh);
 +  const Span<MLoop> loops = mesh_loops(mesh);
 +
    attribute_math::DefaultMixer<T> mixer(r_values);
  
 -  for (const int poly_index : IndexRange(mesh.totpoly)) {
 -    const MPoly &poly = mesh.mpoly[poly_index];
 +  for (const int poly_index : polygons.index_range()) {
 +    const MPoly &poly = polygons[poly_index];
  
      /* For every edge, mix values from the two adjacent corners (the current and next corner). */
-     for (const int loop_index : IndexRange(poly.loopstart, poly.totloop)) {
-       const int loop_index_next = (loop_index + 1) % poly.totloop;
-       const MLoop &loop = loops[loop_index];
+     for (const int i : IndexRange(poly.totloop)) {
+       const int next_i = (i + 1) % poly.totloop;
+       const int loop_i = poly.loopstart + i;
+       const int next_loop_i = poly.loopstart + next_i;
 -      const MLoop &loop = mesh.mloop[loop_i];
++      const MLoop &loop = loops[loop_i];
        const int edge_index = loop.e;
-       mixer.mix_in(edge_index, old_values[loop_index]);
-       mixer.mix_in(edge_index, old_values[loop_index_next]);
+       mixer.mix_in(edge_index, old_values[loop_i]);
+       mixer.mix_in(edge_index, old_values[next_loop_i]);
      }
    }
  
@@@ -335,16 -324,19 +337,19 @@@ void adapt_mesh_domain_corner_to_edge_i
    Array<bool> loose_edges(mesh.totedge, true);
  
    r_values.fill(true);
 -  for (const int poly_index : IndexRange(mesh.totpoly)) {
 -    const MPoly &poly = mesh.mpoly[poly_index];
 +  for (const int poly_index : polygons.index_range()) {
 +    const MPoly &poly = polygons[poly_index];
  
-     for (const int loop_index : IndexRange(poly.loopstart, poly.totloop)) {
-       const int loop_index_next = (loop_index == poly.totloop) ? poly.loopstart : (loop_index + 1);
-       const MLoop &loop = loops[loop_index];
+     for (const int i : IndexRange(poly.totloop)) {
+       const int next_i = (i + 1) % poly.totloop;
+       const int loop_i = poly.loopstart + i;
+       const int next_loop_i = poly.loopstart + next_i;
 -      const MLoop &loop = mesh.mloop[loop_i];
++      const MLoop &loop = loops[loop_i];
        const int edge_index = loop.e;
+ 
        loose_edges[edge_index] = false;
  
-       if (!old_values[loop_index] || !old_values[loop_index_next]) {
+       if (!old_values[loop_i] || !old_values[next_loop_i]) {
          r_values[edge_index] = false;
        }
      }



More information about the Bf-blender-cvs mailing list