diff options
author | mano-wii <germano.costa@ig.com.br> | 2019-06-12 00:45:46 +0300 |
---|---|---|
committer | mano-wii <germano.costa@ig.com.br> | 2019-06-12 00:45:46 +0300 |
commit | d93a7290e5063be31c7c6af9f0496182658f42d2 (patch) | |
tree | 6fc66553ad9fdd75ecb06aed29e07d2115e6cab0 /source/blender/editors/space_view3d/view3d_snap.c | |
parent | f92bb695c4082351b52a4b8ccb5d021cd6a88263 (diff) |
View3D Snap: Don't mix original/evaluated in the same function parameters.
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_snap.c')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_snap.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c index 8b1d2028107..51dc14f3dff 100644 --- a/source/blender/editors/space_view3d/view3d_snap.c +++ b/source/blender/editors/space_view3d/view3d_snap.c @@ -428,13 +428,14 @@ static int snap_selected_to_location(bContext *C, sub_v3_v3(cursor_parent, ob->obmat[3]); if (ob->parent) { - float parentmat[4][4]; - /* The evaluated object is used here because sometimes - * `runtime.curve_cache` is required. */ - Object *ob_parent_eval = DEG_get_evaluated_object(depsgraph, ob->parent); - BKE_object_get_parent_matrix(ob, ob_parent_eval, parentmat); - mul_m3_m4m4(imat, parentmat, ob->parentinv); - invert_m3(imat); + float originmat[3][3], parentmat[4][4]; + /* Use the evaluated object here because sometimes + * `ob->parent->runtime.curve_cache` is required. */ + Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob); + + BKE_object_get_parent_matrix(ob_eval, ob_eval->parent, parentmat); + mul_m3_m4m4(originmat, parentmat, ob->parentinv); + invert_m3_m3(imat, originmat); mul_m3_v3(imat, cursor_parent); } if ((ob->protectflag & OB_LOCK_LOCX) == 0) { |