diff options
author | Antonis Ryakiotakis <kalast@gmail.com> | 2022-02-07 21:37:15 +0300 |
---|---|---|
committer | Antonis Ryakiotakis <kalast@gmail.com> | 2022-02-07 21:37:15 +0300 |
commit | d8c05502272990173381bfd2590884bbc95aa5f5 (patch) | |
tree | 8bd65efacbe6484b838d4550597d0f4a54ddddd9 /source/blender/editors/util/ed_transverts.c | |
parent | b64d551f3b2fa409b4eeefb641fc581eb6cd0bd6 (diff) | |
parent | fe1816f67fbc6aaf383ec77847d668367335d093 (diff) |
Merge branch 'master' into KTX_supportKTX_support
Diffstat (limited to 'source/blender/editors/util/ed_transverts.c')
-rw-r--r-- | source/blender/editors/util/ed_transverts.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/source/blender/editors/util/ed_transverts.c b/source/blender/editors/util/ed_transverts.c index 705dfff7260..b9e90670a4d 100644 --- a/source/blender/editors/util/ed_transverts.c +++ b/source/blender/editors/util/ed_transverts.c @@ -41,6 +41,7 @@ #include "BKE_editmesh.h" #include "BKE_lattice.h" #include "BKE_mesh_iterators.h" +#include "BKE_object.h" #include "DEG_depsgraph.h" @@ -194,12 +195,12 @@ static void set_mapped_co(void *vuserdata, int index, const float co[3], const f } } -bool ED_transverts_check_obedit(Object *obedit) +bool ED_transverts_check_obedit(const Object *obedit) { return (ELEM(obedit->type, OB_ARMATURE, OB_LATTICE, OB_MESH, OB_SURF, OB_CURVE, OB_MBALL)); } -void ED_transverts_create_from_obedit(TransVertStore *tvs, Object *obedit, const int mode) +void ED_transverts_create_from_obedit(TransVertStore *tvs, const Object *obedit, const int mode) { Nurb *nu; BezTriple *bezt; @@ -213,7 +214,7 @@ void ED_transverts_create_from_obedit(TransVertStore *tvs, Object *obedit, const tvs->transverts_tot = 0; if (obedit->type == OB_MESH) { - BMEditMesh *em = BKE_editmesh_from_object(obedit); + BMEditMesh *em = BKE_editmesh_from_object((Object *)obedit); BMesh *bm = em->bm; BMIter iter; void *userdata[2] = {em, NULL}; @@ -311,9 +312,13 @@ void ED_transverts_create_from_obedit(TransVertStore *tvs, Object *obedit, const userdata[1] = tvs->transverts; } - if (tvs->transverts && em->mesh_eval_cage) { - BM_mesh_elem_table_ensure(bm, BM_VERT); - BKE_mesh_foreach_mapped_vert(em->mesh_eval_cage, set_mapped_co, userdata, MESH_FOREACH_NOP); + if (mode & TM_CALC_MAPLOC) { + struct Mesh *editmesh_eval_cage = BKE_object_get_editmesh_eval_cage(obedit); + if (tvs->transverts && editmesh_eval_cage) { + BM_mesh_elem_table_ensure(bm, BM_VERT); + BKE_mesh_foreach_mapped_vert( + editmesh_eval_cage, set_mapped_co, userdata, MESH_FOREACH_NOP); + } } } else if (obedit->type == OB_ARMATURE) { |