From 5eb7aa5ebba9cf6a88e0433ac679ad8f810c5c47 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 25 Aug 2020 14:32:10 +1000 Subject: Fix T80077: Objects disappear when joining with a zero scaled axis Use invert_m4_m4_safe_ortho when joining objects so zero scaled axis doesn't cause all points to be scaled to zero. Instead geometry is left un-scaled on degenerate axes. Report a warning in this case since users may want to adjust the active objects scale. --- source/blender/editors/curve/editcurve.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender/editors/curve/editcurve.c') diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index 075a1fcf832..4e12063544e 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -6923,8 +6923,9 @@ int ED_curve_join_objects_exec(bContext *C, wmOperator *op) BLI_listbase_clear(&tempbase); - /* trasnform all selected curves inverse in obact */ - invert_m4_m4(imat, ob_active->obmat); + /* Inverse transform for all selected curves in this object, + * See #object_join_exec for detailed comment on why the safe version is used. */ + invert_m4_m4_safe_ortho(imat, ob_active->obmat); CTX_DATA_BEGIN (C, Object *, ob_iter, selected_editable_objects) { if (ob_iter->type == ob_active->type) { -- cgit v1.2.3