From e241e905ec6582cf45e3543173a007f7734b1cb1 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 10 Aug 2023 14:52:20 +0200 Subject: [PATCH] CutGizmo: Manually cherry-picked https://github.com/Prusa-Development/PrusaSlicerPrivate/commit/6dbbbfea7aa55c088c28fd55c58c02ab533bde48. This changed fixed cut for mirrored object --- src/libslic3r/CutUtils.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/CutUtils.cpp b/src/libslic3r/CutUtils.cpp index ba2c3452af..09f4142dac 100644 --- a/src/libslic3r/CutUtils.cpp +++ b/src/libslic3r/CutUtils.cpp @@ -208,7 +208,12 @@ static void reset_instance_transformation(ModelObject* object, size_t src_instan auto& obj_instance = object->instances[i]; const double rot_z = obj_instance->get_rotation().z(); - obj_instance->set_transformation(Transformation(obj_instance->get_transformation().get_matrix_no_scaling_factor())); + Transformation inst_trafo = Transformation(obj_instance->get_transformation().get_matrix_no_scaling_factor()); + // add respect to mirroring + if (obj_instance->is_left_handed()) + inst_trafo = inst_trafo * Transformation(scale_transform(Vec3d(-1, 1, 1))); + + obj_instance->set_transformation(inst_trafo); Vec3d rotation = Vec3d::Zero(); if (!flip && !place_on_cut) {