[Bf-blender-cvs] [6e26d0645ef] master: Cleanup: Use spans for voxel remesh mesh data

Hans Goudey noreply at git.blender.org
Mon Nov 28 15:57:13 CET 2022


Commit: 6e26d0645ef63572f0f1875f8097e71373025f50
Author: Hans Goudey
Date:   Sun Nov 27 22:41:28 2022 -0600
Branches: master
https://developer.blender.org/rB6e26d0645ef63572f0f1875f8097e71373025f50

Cleanup: Use spans for voxel remesh mesh data

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

M	source/blender/blenkernel/intern/mesh_remesh_voxel.cc

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

diff --git a/source/blender/blenkernel/intern/mesh_remesh_voxel.cc b/source/blender/blenkernel/intern/mesh_remesh_voxel.cc
index 0887e26148a..86c77327f98 100644
--- a/source/blender/blenkernel/intern/mesh_remesh_voxel.cc
+++ b/source/blender/blenkernel/intern/mesh_remesh_voxel.cc
@@ -288,7 +288,7 @@ void BKE_mesh_remesh_reproject_paint_mask(Mesh *target, const Mesh *source)
 {
   BVHTreeFromMesh bvhtree = {nullptr};
   BKE_bvhtree_from_mesh_get(&bvhtree, source, BVHTREE_FROM_VERTS, 2);
-  const MVert *target_verts = (const MVert *)CustomData_get_layer(&target->vdata, CD_MVERT);
+  const Span<MVert> target_verts = target->verts();
   const float *source_mask = (const float *)CustomData_get_layer(&source->vdata, CD_PAINT_MASK);
   if (source_mask == nullptr) {
     return;
@@ -305,13 +305,11 @@ void BKE_mesh_remesh_reproject_paint_mask(Mesh *target, const Mesh *source)
 
   blender::threading::parallel_for(IndexRange(target->totvert), 4096, [&](const IndexRange range) {
     for (const int i : range) {
-      float from_co[3];
       BVHTreeNearest nearest;
       nearest.index = -1;
       nearest.dist_sq = FLT_MAX;
-      copy_v3_v3(from_co, target_verts[i].co);
       BLI_bvhtree_find_nearest(
-          bvhtree.tree, from_co, &nearest, bvhtree.nearest_callback, &bvhtree);
+          bvhtree.tree, target_verts[i].co, &nearest, bvhtree.nearest_callback, &bvhtree);
       if (nearest.index != -1) {
         target_mask[i] = source_mask[nearest.index];
       }
@@ -326,9 +324,9 @@ void BKE_remesh_reproject_sculpt_face_sets(Mesh *target, const Mesh *source)
   using namespace blender::bke;
   const AttributeAccessor src_attributes = source->attributes();
   MutableAttributeAccessor dst_attributes = target->attributes_for_write();
-  const MPoly *target_polys = (const MPoly *)CustomData_get_layer(&target->pdata, CD_MPOLY);
-  const MVert *target_verts = (const MVert *)CustomData_get_layer(&target->vdata, CD_MVERT);
-  const MLoop *target_loops = (const MLoop *)CustomData_get_layer(&target->ldata, CD_MLOOP);
+  const Span<MVert> target_verts = target->verts();
+  const Span<MPoly> target_polys = target->polys();
+  const Span<MLoop> target_loops = target->loops();
 
   const VArray<int> src_face_sets = src_attributes.lookup<int>(".sculpt_face_set",
                                                                ATTR_DOMAIN_FACE);
@@ -354,8 +352,9 @@ void BKE_remesh_reproject_sculpt_face_sets(Mesh *target, const Mesh *source)
       BVHTreeNearest nearest;
       nearest.index = -1;
       nearest.dist_sq = FLT_MAX;
-      const MPoly *mpoly = &target_polys[i];
-      BKE_mesh_calc_poly_center(mpoly, &target_loops[mpoly->loopstart], target_verts, from_co);
+      const MPoly &poly = target_polys[i];
+      BKE_mesh_calc_poly_center(
+          &poly, &target_loops[poly.loopstart], target_verts.data(), from_co);
       BLI_bvhtree_find_nearest(
           bvhtree.tree, from_co, &nearest, bvhtree.nearest_callback, &bvhtree);
       if (nearest.index != -1) {
@@ -403,7 +402,7 @@ void BKE_remesh_reproject_vertex_paint(Mesh *target, const Mesh *source)
     size_t data_size = CustomData_sizeof(layer->type);
     void *target_data = target_cdata->layers[layer_i].data;
     void *source_data = layer->data;
-    MVert *target_verts = (MVert *)CustomData_get_layer(&target->vdata, CD_MVERT);
+    const Span<MVert> target_verts = target->verts();
 
     if (domain == ATTR_DOMAIN_POINT) {
       blender::threading::parallel_for(



More information about the Bf-blender-cvs mailing list