From 776edb9276c66aafa1e9075dc94b97f4da88c127 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Mon, 27 Feb 2023 21:58:51 +0100 Subject: [PATCH] Revert "Reduce curling of Rear seams, improve its quality": This reverts commit 1377aa5a7e8ff4fcc50ba9f0d62331183e9d5090. The problem that this commit solves is already solved in a better way in 2.6.0-alpha2 --- src/libslic3r/GCode/SeamPlacer.cpp | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/libslic3r/GCode/SeamPlacer.cpp b/src/libslic3r/GCode/SeamPlacer.cpp index 35f31e5c63..1028feea8c 100644 --- a/src/libslic3r/GCode/SeamPlacer.cpp +++ b/src/libslic3r/GCode/SeamPlacer.cpp @@ -1,7 +1,5 @@ #include "SeamPlacer.hpp" -#include "Point.hpp" -#include "libslic3r.h" #include "tbb/parallel_for.h" #include "tbb/blocked_range.h" #include "tbb/parallel_reduce.h" @@ -752,9 +750,8 @@ void gather_enforcers_blockers(GlobalModelInfo &result, const PrintObject *po) { struct SeamComparator { SeamPosition setup; float angle_importance; - Vec2f rear_attractor; - explicit SeamComparator(SeamPosition setup, const Vec2f& rear_attractor = Vec2f::Zero()) : - setup(setup), rear_attractor(rear_attractor) { + explicit SeamComparator(SeamPosition setup) : + setup(setup) { angle_importance = setup == spNearest ? SeamPlacer::angle_importance_nearest : SeamPlacer::angle_importance_aligned; } @@ -785,9 +782,8 @@ struct SeamComparator { return false; } - if (setup == SeamPosition::spRear) { - return (a.position.head<2>() - rear_attractor).squaredNorm() < - (b.position.head<2>() - rear_attractor).squaredNorm(); + if (setup == SeamPosition::spRear && a.position.y() != b.position.y()) { + return a.position.y() > b.position.y(); } float distance_penalty_a = 0.0f; @@ -849,8 +845,7 @@ struct SeamComparator { } if (setup == SeamPosition::spRear) { - return (a.position.head<2>() - rear_attractor).squaredNorm() - a.perimeter.flow_width < - (b.position.head<2>() - rear_attractor).squaredNorm(); + return a.position.y() + SeamPlacer::seam_align_score_tolerance * 5.0f > b.position.y(); } float penalty_a = a.overhang + a.visibility @@ -1479,9 +1474,7 @@ void SeamPlacer::init(const Print &print, std::function throw_if_can for (const PrintObject *po : print.objects()) { throw_if_canceled_func(); SeamPosition configured_seam_preference = po->config().seam_position.value; - Vec2f rear_attractor = unscaled(po->bounding_box().center()).cast() + - 1.5f * Vec2f(0.0f, unscale(po->bounding_box().max.y())); - SeamComparator comparator{configured_seam_preference, rear_attractor}; + SeamComparator comparator { configured_seam_preference }; { GlobalModelInfo global_model_info { };