Fix #23071: making vertex parent not correct with subsurf modifier, now it
also uses the final derivedmesh for the coordinates in edit mode.
This commit is contained in:
@@ -1837,21 +1837,10 @@ static void give_parvert(Object *par, int nr, float *vec)
|
||||
|
||||
if(par->type==OB_MESH) {
|
||||
Mesh *me= par->data;
|
||||
DerivedMesh *dm;
|
||||
|
||||
em = BKE_mesh_get_editmesh(me);
|
||||
|
||||
if(em) {
|
||||
EditVert *eve;
|
||||
|
||||
for(eve= em->verts.first; eve; eve= eve->next) {
|
||||
if(eve->keyindex==nr) {
|
||||
memcpy(vec, eve->co, sizeof(float)*3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
BKE_mesh_end_editmesh(me, em);
|
||||
}
|
||||
else {
|
||||
DerivedMesh *dm = par->derivedFinal;
|
||||
dm = (em)? em->derivedFinal: par->derivedFinal;
|
||||
|
||||
if(dm) {
|
||||
MVert *mvert= dm->getVertArray(dm);
|
||||
@@ -1877,7 +1866,9 @@ static void give_parvert(Object *par, int nr, float *vec)
|
||||
dm->getVertCo(dm, 0, vec);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(em)
|
||||
BKE_mesh_end_editmesh(me, em);
|
||||
}
|
||||
else if (ELEM(par->type, OB_CURVE, OB_SURF)) {
|
||||
Nurb *nu;
|
||||
|
Reference in New Issue
Block a user