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:
-rw-r--r--source/blender/editors/space_view3d/view3d_snap.c15
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) {