diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-09-01 19:28:16 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-09-01 19:28:16 +0300 |
commit | 45eb40674821a7606030872e86340f4ca836accf (patch) | |
tree | b995411f875928a730b3d428afabc7699bb77b10 /source/blender/editors/transform/transform_snap.c | |
parent | 312cb0a957b81233eaf441f5b3a0c8420a6e24e4 (diff) |
Fix T45978: Ruler ignores new edit-mesh data
Diffstat (limited to 'source/blender/editors/transform/transform_snap.c')
-rw-r--r-- | source/blender/editors/transform/transform_snap.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index 9e2cca51577..ffa05b4a718 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -1854,8 +1854,16 @@ static bool snapObject(Scene *scene, short snap_mode, ARegion *ar, Object *ob, f do_bb = false; } else { + /* in this case we wan't the mesh from the editmesh, avoids stale data. see: T45978. + * still set the 'em' to NULL, since we only want the 'dm'. */ + em = BKE_editmesh_from_object(ob); + if (em) { + editbmesh_get_derived_cage_and_final(scene, ob, em, CD_MASK_BAREMESH, &dm); + } + else { + dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH); + } em = NULL; - dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH); } retval = snapDerivedMesh(snap_mode, ar, ob, dm, em, obmat, ray_start, ray_normal, ray_origin, mval, r_loc, r_no, r_dist_px, r_depth, do_bb); |