[Bf-blender-cvs] [f5e39d9190a] refactor-mesh-corners-generic: 298 remaining uses of MLoop

Hans Goudey noreply at git.blender.org
Wed Nov 30 16:15:14 CET 2022


Commit: f5e39d9190a6d3ce7ad46fffaddfd4035fa1ebad
Author: Hans Goudey
Date:   Wed Nov 30 09:14:51 2022 -0600
Branches: refactor-mesh-corners-generic
https://developer.blender.org/rBf5e39d9190a6d3ce7ad46fffaddfd4035fa1ebad

298 remaining uses of MLoop

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

M	source/blender/blenkernel/BKE_mesh.h
M	source/blender/blenkernel/BKE_mesh_remap.h
M	source/blender/blenkernel/BKE_uv_islands.hh
M	source/blender/blenkernel/intern/cdderivedmesh.c
M	source/blender/blenkernel/intern/data_transfer.c
M	source/blender/blenkernel/intern/mesh.cc
M	source/blender/blenkernel/intern/mesh_convert.cc
M	source/blender/blenkernel/intern/mesh_iterators.cc
M	source/blender/blenkernel/intern/mesh_mirror.c
M	source/blender/blenkernel/intern/mesh_normals.cc
M	source/blender/blenkernel/intern/mesh_remap.cc
M	source/blender/blenkernel/intern/mesh_remesh_voxel.cc
M	source/blender/blenkernel/intern/mesh_runtime.cc
M	source/blender/blenkernel/intern/mesh_validate.cc
M	source/blender/blenkernel/intern/mesh_wrapper.cc
M	source/blender/blenkernel/intern/multires_unsubdivide.c
M	source/blender/blenkernel/intern/pbvh_pixels.cc
M	source/blender/blenkernel/intern/pbvh_uv_islands.cc
M	source/blender/blenkernel/intern/pbvh_uv_islands.hh
M	source/blender/blenkernel/intern/subdiv_foreach.c
M	source/blender/draw/intern/mesh_extractors/extract_mesh.hh
M	source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_edituv.cc
M	source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_fdots.cc
M	source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines.cc
M	source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines_paint_mask.cc
M	source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_sculpt_data.cc
M	source/blender/modifiers/intern/MOD_laplaciandeform.c
M	source/blender/modifiers/intern/MOD_normal_edit.cc
M	source/blender/modifiers/intern/MOD_ocean.c
M	source/blender/modifiers/intern/MOD_particleinstance.c
M	source/blender/modifiers/intern/MOD_remesh.c
M	source/blender/modifiers/intern/MOD_surfacedeform.c
M	source/blender/modifiers/intern/MOD_uvwarp.cc
M	source/blender/modifiers/intern/MOD_weighted_normal.cc
M	source/blender/nodes/geometry/nodes/node_geo_convex_hull.cc
M	source/blender/nodes/geometry/nodes/node_geo_dual_mesh.cc
M	source/blender/render/intern/multires_bake.c

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

diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index 623c1a6806d..89b02e2ffc2 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -111,7 +111,7 @@ void BKE_mesh_ensure_default_orig_index_customdata_no_check(struct Mesh *mesh);
  * Find the index of the loop in 'poly' which references vertex,
  * returns -1 if not found
  */
-int poly_find_loop_from_vert(const struct MPoly *poly, const int *poly_corner_verts, int vert);
+int poly_find_loop_from_vert(const struct MPoly *poly, const int *poly_verts, int vert);
 /**
  * Fill \a r_adj with the loop indices in \a poly adjacent to the
  * vertex. Returns the index of the loop matching vertex, or -1 if the
@@ -131,8 +131,9 @@ int BKE_mesh_edge_other_vert(const struct MEdge *e, int v);
  * Sets each output array element to the edge index if it is a real edge, or -1.
  */
 void BKE_mesh_looptri_get_real_edges(const struct MEdge *edges,
-                                     const struct MLoop *loops,
-                                     const struct MLoopTri *looptri,
+                                     const int *corner_verts,
+                                     const int *corner_edges,
+                                     const struct MLoopTri *tri,
                                      int r_edges[3]);
 
 /**
@@ -439,7 +440,7 @@ bool BKE_mesh_vertex_normals_are_dirty(const struct Mesh *mesh);
 bool BKE_mesh_poly_normals_are_dirty(const struct Mesh *mesh);
 
 void BKE_mesh_calc_poly_normal(const struct MPoly *mpoly,
-                               const int *poly_corner_verts,
+                               const int *poly_verts,
                                const float (*positions)[3],
                                float r_no[3]);
 
@@ -919,7 +920,8 @@ bool BKE_mesh_validate_arrays(struct Mesh *me,
                               unsigned int totedge,
                               struct MFace *mfaces,
                               unsigned int totface,
-                              struct MLoop *mloops,
+                              int *corner_verts,
+                              int *corner_edges,
                               unsigned int totloop,
                               struct MPoly *mpolys,
                               unsigned int totpoly,
@@ -1045,22 +1047,22 @@ BLI_INLINE MPoly *BKE_mesh_polys_for_write(Mesh *mesh)
   return (MPoly *)CustomData_duplicate_referenced_layer(&mesh->pdata, CD_MPOLY, mesh->totpoly);
 }
 
-BLI_INLINE const MLoop *BKE_mesh_corner_verts(const Mesh *mesh)
+BLI_INLINE const int *BKE_mesh_corner_verts(const Mesh *mesh)
 {
-  return (const MLoop *)nullptr;
+  return (const int *)NULL;
 }
 BLI_INLINE int *BKE_mesh_corner_verts_for_write(Mesh *mesh)
 {
-  return (int *)nullptr;
+  return (int *)NULL;
 }
 
 BLI_INLINE const int *BKE_mesh_corner_edges(const Mesh *mesh)
 {
-  return (const int *)nullptr;
+  return (const int *)NULL;
 }
 BLI_INLINE int *BKE_mesh_corner_edges_for_write(Mesh *mesh)
 {
-  return (int *)nullptr;
+  return (int *)NULL;
 }
 
 BLI_INLINE const MDeformVert *BKE_mesh_deform_verts(const Mesh *mesh)
@@ -1114,15 +1116,6 @@ inline blender::MutableSpan<MPoly> Mesh::polys_for_write()
   return {BKE_mesh_polys_for_write(this), this->totpoly};
 }
 
-inline blender::Span<MLoop> Mesh::loops() const
-{
-  return {BKE_mesh_loops(this), this->totloop};
-}
-inline blender::MutableSpan<MLoop> Mesh::loops_for_write()
-{
-  return {BKE_mesh_loops_for_write(this), this->totloop};
-}
-
 inline blender::Span<int> Mesh::corner_verts() const
 {
   return {};
diff --git a/source/blender/blenkernel/BKE_mesh_remap.h b/source/blender/blenkernel/BKE_mesh_remap.h
index c9ca5823c3e..c62fa959893 100644
--- a/source/blender/blenkernel/BKE_mesh_remap.h
+++ b/source/blender/blenkernel/BKE_mesh_remap.h
@@ -222,7 +222,7 @@ void BKE_mesh_remap_calc_polys_from_mesh(int mode,
                                          float ray_radius,
                                          const struct Mesh *mesh_dst,
                                          const float (*positions_dst)[3],
-                                         const struct MLoop *loops_dst,
+                                         const int *corner_verts,
                                          const struct MPoly *polys_dst,
                                          int numpolys_dst,
                                          struct Mesh *me_src,
diff --git a/source/blender/blenkernel/BKE_uv_islands.hh b/source/blender/blenkernel/BKE_uv_islands.hh
index 406ecf39b71..11c1ab63657 100644
--- a/source/blender/blenkernel/BKE_uv_islands.hh
+++ b/source/blender/blenkernel/BKE_uv_islands.hh
@@ -96,7 +96,7 @@ struct MeshData {
   const MLoopTri *looptri;
   const int64_t looptri_len;
   const int64_t vert_len;
-  const MLoop *mloop;
+  const int *corner_verts;
   const MLoopUV *mloopuv;
 
  public:
@@ -109,12 +109,12 @@ struct MeshData {
   explicit MeshData(const MLoopTri *looptri,
                     const int64_t looptri_len,
                     const int64_t vert_len,
-                    const MLoop *mloop,
+                    const int *corner_verts,
                     const MLoopUV *mloopuv)
       : looptri(looptri),
         looptri_len(looptri_len),
         vert_len(vert_len),
-        mloop(mloop),
+        corner_verts(corner_verts),
         mloopuv(mloopuv)
   {
     init_vertices();
@@ -145,7 +145,7 @@ struct MeshData {
       for (int j = 0; j < 3; j++) {
         MeshUVVert uv_vert;
         uv_vert.loop = tri.tri[j];
-        uv_vert.vertex = &vertices[mloop[uv_vert.loop].v];
+        uv_vert.vertex = &vertices[corner_verts[uv_vert.loop]];
         uv_vert.uv = mloopuv[uv_vert.loop].uv;
         primitive.vertices.append(uv_vert);
       }
@@ -161,8 +161,8 @@ struct MeshData {
       const MLoopTri &tri = looptri[i];
       MeshPrimitive &primitive = primitives[i];
       for (int j = 0; j < 3; j++) {
-        int v1 = mloop[tri.tri[j]].v;
-        int v2 = mloop[tri.tri[(j + 1) % 3]].v;
+        int v1 = corner_verts[tri.tri[j]];
+        int v2 = corner_verts[tri.tri[(j + 1) % 3]];
         /* TODO: Use lookup_ptr to be able to store edge 0. */
         void *v = BLI_edgehash_lookup(eh, v1, v2);
         int64_t edge_index;
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index 55153d8331d..8ca9044eec4 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -42,7 +42,8 @@ typedef struct {
   const float (*vert_normals)[3];
   MEdge *medge;
   MFace *mface;
-  MLoop *mloop;
+  int *corner_verts;
+  int *corner_edges;
   MPoly *mpoly;
 
   /* Cached */
diff --git a/source/blender/blenkernel/intern/data_transfer.c b/source/blender/blenkernel/intern/data_transfer.c
index 964fde65030..1ab8ed29236 100644
--- a/source/blender/blenkernel/intern/data_transfer.c
+++ b/source/blender/blenkernel/intern/data_transfer.c
@@ -1504,7 +1504,8 @@ bool BKE_object_data_transfer_ex(struct Depsgraph *depsgraph,
       const int num_edges_dst = me_dst->totedge;
       const MPoly *polys_dst = BKE_mesh_polys(me_dst);
       const int num_polys_dst = me_dst->totpoly;
-      const MLoop *loops_dst = BKE_mesh_loops(me_dst);
+      const int *corner_verts = BKE_mesh_corner_verts(me_dst);
+      const int *corner_edges = BKE_mesh_corner_edgess(me_dst);
       const int num_loops_dst = me_dst->totloop;
       CustomData *ldata_dst = &me_dst->ldata;
 
@@ -1544,7 +1545,8 @@ bool BKE_object_data_transfer_ex(struct Depsgraph *depsgraph,
                                             num_verts_dst,
                                             edges_dst,
                                             num_edges_dst,
-                                            loops_dst,
+                                            corner_verts,
+                                            corner_edges,
                                             num_loops_dst,
                                             polys_dst,
                                             num_polys_dst,
@@ -1561,8 +1563,13 @@ bool BKE_object_data_transfer_ex(struct Depsgraph *depsgraph,
 
       if (mdef && vg_idx != -1 && !weights[LDATA]) {
         weights[LDATA] = MEM_mallocN(sizeof(*weights[LDATA]) * (size_t)num_loops_dst, __func__);
-        BKE_defvert_extract_vgroup_to_loopweights(
-            mdef, vg_idx, num_verts_dst, loops_dst, num_loops_dst, invert_vgroup, weights[LDATA]);
+        BKE_defvert_extract_vgroup_to_loopweights(mdef,
+                                                  vg_idx,
+                                                  num_verts_dst,
+                                                  corner_verts,
+                                                  num_loops_dst,
+                                                  invert_vgroup,
+                                                  weights[LDATA]);
       }
 
       if (data_transfer_layersmapping_generate(&lay_map,
@@ -1597,7 +1604,8 @@ bool BKE_object_data_transfer_ex(struct Depsgraph *depsgraph,
       const int num_verts_dst = me_dst->totvert;
       const MPoly *polys_dst = BKE_mesh_polys(me_dst);
       const int num_polys_dst = me_dst->totpoly;
-      const MLoop *loops_dst = BKE_mesh_loops(me_dst);
+      const int *corner_verts = BKE_mesh_corner_verts(me_dst);
+      const int *corner_edges = BKE_mesh_corner_edgess(me_dst);
       const int num_loops_dst = me_dst->totloop;
 
       if (!geom_map_init[PDATA]) {
@@ -1631,7 +1639,7 @@ bool BKE_object_data_transfer_ex(struct Depsgraph *depsgraph,
                                             ray_radius,
                                             me_dst,
                                             positions_dst,
-                                            loops_dst,
+                                            corner_verts,
                                             polys_dst,
                                             num_polys_dst,
                                             me_src,
@@ -1644,7 +1652,7 @@ bool BKE_object_data_transfer_ex(struct Depsgraph *depsgraph,
         BKE_defvert_extract_vgroup_to_polyweights(mdef,
  

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list