diff options
author | Hans Goudey <h.goudey@me.com> | 2022-09-12 01:36:06 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2022-09-12 01:36:06 +0300 |
commit | 0aeb1f0c5bb95be426d96a5ad9924610d909899d (patch) | |
tree | 7662d28b86f0de0894e48f2aa9ece429424c1a0b /source/blender/editors/object/object_modifier.cc | |
parent | 789297ecb91002aa7c4e7c59a8a6c4fd2b80c462 (diff) |
Start converting mesh positions to a generic attribute
Diffstat (limited to 'source/blender/editors/object/object_modifier.cc')
-rw-r--r-- | source/blender/editors/object/object_modifier.cc | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/source/blender/editors/object/object_modifier.cc b/source/blender/editors/object/object_modifier.cc index d6813e92844..55a1a82dfcf 100644 --- a/source/blender/editors/object/object_modifier.cc +++ b/source/blender/editors/object/object_modifier.cc @@ -94,6 +94,7 @@ #include "object_intern.h" +using blender::float3; using blender::Span; static void modifier_skin_customdata_delete(struct Object *ob); @@ -594,9 +595,8 @@ bool ED_object_modifier_convert_psys_to_mesh(ReportList *UNUSED(reports), CustomData_add_layer(&me->edata, CD_MEDGE, CD_SET_DEFAULT, nullptr, edges_num); CustomData_add_layer(&me->fdata, CD_MFACE, CD_SET_DEFAULT, nullptr, 0); - blender::MutableSpan<MVert> verts = me->verts_for_write(); + blender::MutableSpan<float3> positions = me->positions_for_write(); blender::MutableSpan<MEdge> edges = me->edges_for_write(); - MVert *mvert = verts.data(); MEdge *medge = edges.data(); bke::MutableAttributeAccessor attributes = me->attributes_for_write(); @@ -610,7 +610,7 @@ bool ED_object_modifier_convert_psys_to_mesh(ReportList *UNUSED(reports), ParticleCacheKey *key = cache[a]; int kmax = key->segments; for (int k = 0; k <= kmax; k++, key++, cvert++, vert_index++) { - copy_v3_v3(mvert[vert_index].co, key->co); + copy_v3_v3(positions[vert_index], key->co); if (k) { medge->v1 = cvert - 1; medge->v2 = cvert; @@ -629,7 +629,7 @@ bool ED_object_modifier_convert_psys_to_mesh(ReportList *UNUSED(reports), ParticleCacheKey *key = cache[a]; int kmax = key->segments; for (int k = 0; k <= kmax; k++, key++, cvert++, vert_index++) { - copy_v3_v3(mvert[vert_index].co, key->co); + copy_v3_v3(positions[vert_index], key->co); if (k) { medge->v1 = cvert - 1; medge->v2 = cvert; @@ -2601,7 +2601,7 @@ void OBJECT_OT_skin_radii_equalize(wmOperatorType *ot) } static void skin_armature_bone_create(Object *skin_ob, - const MVert *mvert, + const Span<float3> positions, const MEdge *medge, bArmature *arm, BLI_bitmap *edges_visited, @@ -2628,8 +2628,8 @@ static void skin_armature_bone_create(Object *skin_ob, bone->flag |= BONE_CONNECTED; } - copy_v3_v3(bone->head, mvert[parent_v].co); - copy_v3_v3(bone->tail, mvert[v].co); + copy_v3_v3(bone->head, positions[parent_v]); + copy_v3_v3(bone->tail, positions[v]); bone->rad_head = bone->rad_tail = 0.25; BLI_snprintf(bone->name, sizeof(bone->name), "Bone.%.2d", endx); @@ -2640,14 +2640,14 @@ static void skin_armature_bone_create(Object *skin_ob, ED_vgroup_vert_add(skin_ob, dg, v, 1, WEIGHT_REPLACE); } - skin_armature_bone_create(skin_ob, mvert, medge, arm, edges_visited, emap, bone, v); + skin_armature_bone_create(skin_ob, positions, medge, arm, edges_visited, emap, bone, v); } } static Object *modifier_skin_armature_create(Depsgraph *depsgraph, Main *bmain, Object *skin_ob) { Mesh *me = static_cast<Mesh *>(skin_ob->data); - const Span<MVert> me_verts = me->verts(); + const Span<float3> me_positions = me->positions(); const Span<MEdge> me_edges = me->edges(); Scene *scene_eval = DEG_get_evaluated_scene(depsgraph); @@ -2655,7 +2655,7 @@ static Object *modifier_skin_armature_create(Depsgraph *depsgraph, Main *bmain, const Mesh *me_eval_deform = mesh_get_eval_deform( depsgraph, scene_eval, ob_eval, &CD_MASK_BAREMESH); - const Span<MVert> verts_eval = me_eval_deform->verts(); + const Span<float3> positions_eval = me_eval_deform->positions(); /* add vertex weights to original mesh */ CustomData_add_layer(&me->vdata, CD_MDEFORMVERT, CD_SET_DEFAULT, nullptr, me->totvert); @@ -2689,8 +2689,8 @@ static Object *modifier_skin_armature_create(Depsgraph *depsgraph, Main *bmain, if (emap[v].count > 1) { bone = ED_armature_ebone_add(arm, "Bone"); - copy_v3_v3(bone->head, me_verts[v].co); - copy_v3_v3(bone->tail, me_verts[v].co); + copy_v3_v3(bone->head, me_positions[v]); + copy_v3_v3(bone->tail, me_positions[v]); bone->head[1] = 1.0f; bone->rad_head = bone->rad_tail = 0.25; @@ -2698,7 +2698,7 @@ static Object *modifier_skin_armature_create(Depsgraph *depsgraph, Main *bmain, if (emap[v].count >= 1) { skin_armature_bone_create( - skin_ob, verts_eval.data(), me_edges.data(), arm, edges_visited, emap, bone, v); + skin_ob, positions_eval, me_edges.data(), arm, edges_visited, emap, bone, v); } } } |