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:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-06-05 16:17:53 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-06-05 16:17:53 +0300
commit328f7e13653b7521fed5b92a630d9d9e7be2ce2a (patch)
tree0195480e0cbc492fbc1fddd01c11a6bf3df1b441 /source/blender/blenkernel/intern/crazyspace.c
parent112cd86eb5974d653b9f26f333be5291ce9274da (diff)
Fix T63384: Vertices are moving in different directions
Diffstat (limited to 'source/blender/blenkernel/intern/crazyspace.c')
-rw-r--r--source/blender/blenkernel/intern/crazyspace.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/source/blender/blenkernel/intern/crazyspace.c b/source/blender/blenkernel/intern/crazyspace.c
index a55579d9b61..09bbc6c0d13 100644
--- a/source/blender/blenkernel/intern/crazyspace.c
+++ b/source/blender/blenkernel/intern/crazyspace.c
@@ -99,30 +99,30 @@ static int modifiers_disable_subsurf_temporary(Object *ob)
}
/* disable subsurf temporal, get mapped cos, and enable it */
-float (*BKE_crazyspace_get_mapped_editverts(struct Depsgraph *depsgraph,
- Scene *scene,
- Object *obedit))[3]
+float (*BKE_crazyspace_get_mapped_editverts(struct Depsgraph *depsgraph, Object *obedit))[3]
{
- Mesh *me = obedit->data;
- Mesh *me_eval;
- float(*vertexcos)[3];
- int nverts = me->edit_mesh->bm->totvert;
+ Scene *scene = DEG_get_input_scene(depsgraph);
+ Scene *scene_eval = DEG_get_evaluated_scene(depsgraph);
+ Object *obedit_eval = DEG_get_evaluated_object(depsgraph, obedit);
+ Mesh *mesh_eval = obedit_eval->data;
+ BMEditMesh *editmesh_eval = mesh_eval->edit_mesh;
/* disable subsurf temporal, get mapped cos, and enable it */
- if (modifiers_disable_subsurf_temporary(obedit)) {
+ if (modifiers_disable_subsurf_temporary(obedit_eval)) {
/* need to make new derivemesh */
- makeDerivedMesh(depsgraph, scene, obedit, me->edit_mesh, &CD_MASK_BAREMESH);
+ makeDerivedMesh(depsgraph, scene_eval, obedit_eval, editmesh_eval, &CD_MASK_BAREMESH);
}
/* now get the cage */
- vertexcos = MEM_mallocN(sizeof(*vertexcos) * nverts, "vertexcos map");
-
- me_eval = editbmesh_get_eval_cage_from_orig(depsgraph, scene, obedit, &CD_MASK_BAREMESH);
+ Mesh *mesh_eval_cage = editbmesh_get_eval_cage_from_orig(
+ depsgraph, scene, obedit, &CD_MASK_BAREMESH);
- mesh_get_mapped_verts_coords(me_eval, vertexcos, nverts);
+ const int nverts = editmesh_eval->bm->totvert;
+ float(*vertexcos)[3] = MEM_mallocN(sizeof(*vertexcos) * nverts, "vertexcos map");
+ mesh_get_mapped_verts_coords(mesh_eval_cage, vertexcos, nverts);
/* set back the flag, no new cage needs to be built, transform does it */
- modifiers_disable_subsurf_temporary(obedit);
+ modifiers_disable_subsurf_temporary(obedit_eval);
return vertexcos;
}