diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2019-07-29 17:35:49 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-07-29 17:36:10 +0300 |
commit | 453586be06a129eec7498fe7ecac9f7c555e34e6 (patch) | |
tree | 9a9919f8f4a8f1a520dcf34811e10aafb08a8b1f /source/blender/editors/object/object_hook.c | |
parent | 0ae52711b6b86a40e6aae989e6fb84f5803a9e74 (diff) |
Fix T67849: Offset after "Hook to Selected Object"
Diffstat (limited to 'source/blender/editors/object/object_hook.c')
-rw-r--r-- | source/blender/editors/object/object_hook.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index c939cb0a61d..707489d588a 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -52,6 +52,7 @@ #include "DEG_depsgraph.h" #include "DEG_depsgraph_build.h" +#include "DEG_depsgraph_query.h" #include "RNA_define.h" #include "RNA_access.h" @@ -527,6 +528,7 @@ static int add_hook_object(const bContext *C, int mode, ReportList *reports) { + Depsgraph *depsgraph = CTX_data_depsgraph(C); ModifierData *md = NULL; HookModifierData *hmd = NULL; float cent[3]; @@ -601,11 +603,13 @@ static int add_hook_object(const bContext *C, /* matrix calculus */ /* vert x (obmat x hook->imat) x hook->obmat x ob->imat */ /* (parentinv ) */ - BKE_object_where_is_calc(CTX_data_depsgraph(C), scene, ob); + Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob); + BKE_object_transform_copy(ob_eval, ob); + BKE_object_where_is_calc(depsgraph, scene, ob_eval); - invert_m4_m4(ob->imat, ob->obmat); + invert_m4_m4(ob_eval->imat, ob_eval->obmat); /* apparently this call goes from right to left... */ - mul_m4_series(hmd->parentinv, pose_mat, ob->imat, obedit->obmat); + mul_m4_series(hmd->parentinv, pose_mat, ob_eval->imat, obedit->obmat); DEG_relations_tag_update(bmain); |