[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