Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/intern/object.cc')
-rw-r--r--source/blender/blenkernel/intern/object.cc34
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);
}
}