[Bf-blender-cvs] [c59758ca043] refactor-mesh-remove-pointers: Move polys pointer to shrinkwrap code
Hans Goudey
noreply at git.blender.org
Thu Sep 1 23:55:17 CEST 2022
Commit: c59758ca043c2da9bb211fc2a38d299e4863d7b6
Author: Hans Goudey
Date: Thu Sep 1 16:30:30 2022 -0500
Branches: refactor-mesh-remove-pointers
https://developer.blender.org/rBc59758ca043c2da9bb211fc2a38d299e4863d7b6
Move polys pointer to shrinkwrap code
===================================================================
M source/blender/blenkernel/BKE_bvhutils.h
M source/blender/blenkernel/BKE_shrinkwrap.h
M source/blender/blenkernel/intern/bvhutils.cc
M source/blender/blenkernel/intern/shrinkwrap.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_bvhutils.h b/source/blender/blenkernel/BKE_bvhutils.h
index 1f161fc97a8..d22abd235df 100644
--- a/source/blender/blenkernel/BKE_bvhutils.h
+++ b/source/blender/blenkernel/BKE_bvhutils.h
@@ -57,9 +57,8 @@ typedef struct BVHTreeFromMesh {
const struct MVert *vert;
const float (*vert_normals)[3];
const struct MEdge *edge;
- const struct MPoly *polys;
- const struct MLoop *loop;
const struct MFace *face;
+ const struct MLoop *loop;
const struct MLoopTri *looptri;
/* Private data */
diff --git a/source/blender/blenkernel/BKE_shrinkwrap.h b/source/blender/blenkernel/BKE_shrinkwrap.h
index b834a067b1c..43a1a850348 100644
--- a/source/blender/blenkernel/BKE_shrinkwrap.h
+++ b/source/blender/blenkernel/BKE_shrinkwrap.h
@@ -31,6 +31,7 @@ struct MDeformVert;
struct Mesh;
struct MEdge;
struct ModifierEvalContext;
+struct MPoly;
struct Object;
struct ShrinkwrapGpencilModifierData;
struct ShrinkwrapModifierData;
@@ -73,6 +74,7 @@ typedef struct ShrinkwrapTreeData {
BVHTree *bvh;
BVHTreeFromMesh treeData;
+ const struct MPoly *polys;
const float (*pnors)[3];
const float (*clnors)[3];
ShrinkwrapBoundaryData *boundary;
diff --git a/source/blender/blenkernel/intern/bvhutils.cc b/source/blender/blenkernel/intern/bvhutils.cc
index ba72a924f6d..d33ff933004 100644
--- a/source/blender/blenkernel/intern/bvhutils.cc
+++ b/source/blender/blenkernel/intern/bvhutils.cc
@@ -574,7 +574,6 @@ static void bvhtree_from_mesh_setup_data(BVHTree *tree,
const BVHCacheType bvh_cache_type,
const MVert *vert,
const MEdge *edge,
- const MPoly *polys,
const MFace *face,
const MLoop *loop,
const MLoopTri *looptri,
@@ -587,9 +586,8 @@ static void bvhtree_from_mesh_setup_data(BVHTree *tree,
r_data->vert = vert;
r_data->edge = edge;
- r_data->polys = polys;
- r_data->loop = loop;
r_data->face = face;
+ r_data->loop = loop;
r_data->looptri = looptri;
r_data->vert_normals = vert_normals;
@@ -779,16 +777,8 @@ BVHTree *bvhtree_from_mesh_verts_ex(BVHTreeFromMesh *data,
if (data) {
/* Setup BVHTreeFromMesh */
- bvhtree_from_mesh_setup_data(tree,
- BVHTREE_FROM_VERTS,
- vert,
- nullptr,
- nullptr,
- nullptr,
- nullptr,
- nullptr,
- nullptr,
- data);
+ bvhtree_from_mesh_setup_data(
+ tree, BVHTREE_FROM_VERTS, vert, nullptr, nullptr, nullptr, nullptr, nullptr, data);
}
return tree;
@@ -923,7 +913,7 @@ BVHTree *bvhtree_from_mesh_edges_ex(BVHTreeFromMesh *data,
if (data) {
/* Setup BVHTreeFromMesh */
bvhtree_from_mesh_setup_data(
- tree, BVHTREE_FROM_EDGES, vert, edge, nullptr, nullptr, nullptr, nullptr, nullptr, data);
+ tree, BVHTREE_FROM_EDGES, vert, edge, nullptr, nullptr, nullptr, nullptr, data);
}
return tree;
@@ -1137,16 +1127,8 @@ BVHTree *bvhtree_from_mesh_looptri_ex(BVHTreeFromMesh *data,
if (data) {
/* Setup BVHTreeFromMesh */
- bvhtree_from_mesh_setup_data(tree,
- BVHTREE_FROM_LOOPTRI,
- vert,
- nullptr,
- nullptr,
- nullptr,
- mloop,
- looptri,
- nullptr,
- data);
+ bvhtree_from_mesh_setup_data(
+ tree, BVHTREE_FROM_LOOPTRI, vert, nullptr, nullptr, mloop, looptri, nullptr, data);
}
return tree;
@@ -1251,7 +1233,6 @@ BVHTree *BKE_bvhtree_from_mesh_get(struct BVHTreeFromMesh *data,
}
const Span<MVert> verts = mesh->vertices();
const Span<MEdge> edges = mesh->edges();
- const Span<MPoly> polys = mesh->polygons();
const Span<MLoop> loops = mesh->loops();
/* Setup BVHTreeFromMesh */
@@ -1259,7 +1240,6 @@ BVHTree *BKE_bvhtree_from_mesh_get(struct BVHTreeFromMesh *data,
bvh_cache_type,
verts.data(),
edges.data(),
- polys.data(),
(const MFace *)CustomData_get_layer(&mesh->fdata, CD_MFACE),
loops.data(),
looptri,
diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c
index 16b5513493c..bea2f8f3c4f 100644
--- a/source/blender/blenkernel/intern/shrinkwrap.c
+++ b/source/blender/blenkernel/intern/shrinkwrap.c
@@ -113,6 +113,7 @@ bool BKE_shrinkwrap_init_tree(
}
data->mesh = mesh;
+ data->polys = BKE_mesh_polygons(mesh);
if (shrinkType == MOD_SHRINKWRAP_NEAREST_VERTEX) {
data->bvh = BKE_bvhtree_from_mesh_get(&data->treeData, mesh, BVHTREE_FROM_VERTS, 2);
@@ -1179,7 +1180,7 @@ void BKE_shrinkwrap_compute_smooth_normal(const struct ShrinkwrapTreeData *tree,
const float(*vert_normals)[3] = tree->treeData.vert_normals;
/* Interpolate smooth normals if enabled. */
- if ((treeData->polys[tri->poly].flag & ME_SMOOTH) != 0) {
+ if ((tree->polys[tri->poly].flag & ME_SMOOTH) != 0) {
const uint32_t vert_indices[3] = {treeData->loop[tri->tri[0]].v,
treeData->loop[tri->tri[1]].v,
treeData->loop[tri->tri[2]].v};
More information about the Bf-blender-cvs
mailing list