[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