diff options
Diffstat (limited to 'source/blender/blenkernel/intern/object.cc')
-rw-r--r-- | source/blender/blenkernel/intern/object.cc | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/source/blender/blenkernel/intern/object.cc b/source/blender/blenkernel/intern/object.cc index 9085a54d86f..a3feb862e17 100644 --- a/source/blender/blenkernel/intern/object.cc +++ b/source/blender/blenkernel/intern/object.cc @@ -3237,7 +3237,7 @@ static void give_parvert(Object *par, int nr, float vec[3]) BKE_object_get_evaluated_mesh(par); if (me_eval) { - const MVert *verts = BKE_mesh_verts(me_eval); + const Span<float3> positions = me_eval->positions(); int count = 0; int numVerts = me_eval->totvert; @@ -3271,14 +3271,14 @@ static void give_parvert(Object *par, int nr, float vec[3]) /* Get the average of all verts with (original index == nr). */ for (int i = 0; i < numVerts; i++) { if (index[i] == nr) { - add_v3_v3(vec, verts[i].co); + add_v3_v3(vec, positions[i]); count++; } } } else { if (nr < numVerts) { - add_v3_v3(vec, verts[nr].co); + add_v3_v3(vec, positions[nr]); count++; } } @@ -3292,7 +3292,7 @@ static void give_parvert(Object *par, int nr, float vec[3]) else { /* use first index if its out of range */ if (me_eval->totvert) { - copy_v3_v3(vec, verts[0].co); + copy_v3_v3(vec, positions[0]); } } } @@ -4177,10 +4177,9 @@ void BKE_object_foreach_display_point(Object *ob, float3 co; if (mesh_eval != nullptr) { - const MVert *verts = BKE_mesh_verts(mesh_eval); - const int totvert = mesh_eval->totvert; - for (int i = 0; i < totvert; i++) { - mul_v3_m4v3(co, obmat, verts[i].co); + const Span<float3> positions = mesh_eval->positions(); + for (const int i : positions.index_range()) { + mul_v3_m4v3(co, obmat, positions[i]); func_cb(co, user_data); } } @@ -4805,8 +4804,9 @@ bool BKE_object_shapekey_remove(Main *bmain, Object *ob, KeyBlock *kb) switch (ob->type) { case OB_MESH: { Mesh *mesh = (Mesh *)ob->data; - MutableSpan<MVert> verts = mesh->verts_for_write(); - BKE_keyblock_convert_to_mesh(key->refkey, verts.data(), mesh->totvert); + MutableSpan<float3> verts = mesh->positions_for_write(); + BKE_keyblock_convert_to_mesh( + key->refkey, reinterpret_cast<float(*)[3]>(verts.data()), mesh->totvert); break; } case OB_CURVES_LEGACY: @@ -5304,31 +5304,31 @@ KDTree_3d *BKE_object_as_kdtree(Object *ob, int *r_tot) const int *index; if (me_eval && (index = (const int *)CustomData_get_layer(&me_eval->vdata, CD_ORIGINDEX))) { - const Span<MVert> verts = me->verts(); + const Span<float3> positions = me->positions(); /* Tree over-allocates in case where some verts have #ORIGINDEX_NONE. */ tot = 0; - tree = BLI_kdtree_3d_new(verts.size()); + tree = BLI_kdtree_3d_new(positions.size()); /* We don't how many verts from the DM we can use. */ - for (i = 0; i < verts.size(); i++) { + for (i = 0; i < positions.size(); i++) { if (index[i] != ORIGINDEX_NONE) { float co[3]; - mul_v3_m4v3(co, ob->object_to_world, verts[i].co); + mul_v3_m4v3(co, ob->object_to_world, positions[i]); BLI_kdtree_3d_insert(tree, index[i], co); tot++; } } } else { - const Span<MVert> verts = me->verts(); + const Span<float3> positions = me->positions(); - tot = verts.size(); + tot = positions.size(); tree = BLI_kdtree_3d_new(tot); for (i = 0; i < tot; i++) { float co[3]; - mul_v3_m4v3(co, ob->object_to_world, verts[i].co); + mul_v3_m4v3(co, ob->object_to_world, positions[i]); BLI_kdtree_3d_insert(tree, i, co); } } |