From f81987e6ccf7995245231b19daba03614ae2e419 Mon Sep 17 00:00:00 2001 From: thysson2701 Date: Tue, 21 Jul 2026 15:24:35 +0200 Subject: [PATCH] fix(build): add Polyline3::is_closed() and fix Point3 reference in Fill.cpp --- src/libslic3r/Fill/Fill.cpp | 6 +++--- src/libslic3r/Polyline.hpp | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index b582be3b002..c85c69e8e56 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -9805,9 +9805,9 @@ static bool top_surface_image_append_recolored_perimeter_path(ExtrusionEntitiesP }; for (size_t point_idx = 1; point_idx < path.polyline.points.size(); ++point_idx) { - const Point &p0 = path.polyline.points[point_idx - 1]; - const Point &p1 = path.polyline.points[point_idx]; - const double len_mm = unscale(p0.distance_to(p1)); + const Point3 &p0 = path.polyline.points[point_idx - 1]; + const Point3 &p1 = path.polyline.points[point_idx]; + const double len_mm = unscale(p0.to_point().distance_to(p1.to_point())); if (!std::isfinite(len_mm) || len_mm <= EPSILON) continue; const int steps = std::max(1, int(std::floor(len_mm / min_run_mm))); diff --git a/src/libslic3r/Polyline.hpp b/src/libslic3r/Polyline.hpp index 88671391db9..c14d6329e94 100644 --- a/src/libslic3r/Polyline.hpp +++ b/src/libslic3r/Polyline.hpp @@ -302,6 +302,8 @@ public: virtual Lines3 lines() const; + bool is_closed() const { return this->points.size() >= 2 && this->points.front() == this->points.back(); } + // Convert to 2D Polyline by dropping Z coordinates Polyline to_polyline() const;