From 4622a0d882d4af24ed022c95b37d6708b0481281 Mon Sep 17 00:00:00 2001 From: thysson2701 Date: Tue, 21 Jul 2026 14:48:30 +0200 Subject: [PATCH] fix(build): remove ImageMap-specific Point3/Polyline3 types incompatible with v2.4.2 ExtrusionEntityCollection.hpp had first_point3()/last_point3() overrides that reference Point3 and methods not present in the v2.4.2 ExtrusionEntity base class. Print.hpp used Polyline3() wrappers where plain Polyline is the correct type. Both are leftovers from the ImageMap fork's 3D geometry extension that did not merge cleanly. --- src/libslic3r/ExtrusionEntityCollection.hpp | 2 -- src/libslic3r/Print.hpp | 8 ++++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/libslic3r/ExtrusionEntityCollection.hpp b/src/libslic3r/ExtrusionEntityCollection.hpp index e3f6b4aa8e0..5cb3d7783ef 100644 --- a/src/libslic3r/ExtrusionEntityCollection.hpp +++ b/src/libslic3r/ExtrusionEntityCollection.hpp @@ -158,9 +158,7 @@ public: { return this->no_sort ? *this : chained_path_from(this->entities, start_near, role); } void reverse() override; Point first_point() const override { return this->entities.front()->first_point(); } - const Point3& first_point3() const override { return this->entities.front()->first_point3(); } Point last_point() const override { return this->entities.back()->last_point(); } - const Point3& last_point3() const override { return this->entities.back()->last_point3(); } // Produce a list of 2D polygons covered by the extruded paths, offsetted by the extrusion width. // Increase the offset by scaled_epsilon to achieve an overlap, so a union will produce no gaps. diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index dc4d0124f34..29c98969146 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -651,14 +651,14 @@ struct FakeWipeTower std::vector paths; for (float h = 0.f; h < height; h += layer_height) { ExtrusionPath path(ExtrusionRole::erWipeTower, 0.0, 0.0, layer_height); - path.polyline = Polyline3(Polyline{{minCorner, {maxCorner.x(), minCorner.y()}, maxCorner, {minCorner.x(), maxCorner.y()}, minCorner}}); + path.polyline = Polyline{{minCorner, {maxCorner.x(), minCorner.y()}, maxCorner, {minCorner.x(), maxCorner.y()}, minCorner}}; paths.push_back({path}); if (h == 0.f) { // add brim ExtrusionPath fakeBrim(ExtrusionRole::erBrim, 0.0, 0.0, layer_height); Point wtbminCorner = {minCorner - Point{bd, bd}}; Point wtbmaxCorner = {maxCorner + Point{bd, bd}}; - fakeBrim.polyline = Polyline3(Polyline{{wtbminCorner, {wtbmaxCorner.x(), wtbminCorner.y()}, wtbmaxCorner, {wtbminCorner.x(), wtbmaxCorner.y()}, wtbminCorner}}); + fakeBrim.polyline = Polyline{{wtbminCorner, {wtbmaxCorner.x(), wtbminCorner.y()}, wtbmaxCorner, {wtbminCorner.x(), wtbmaxCorner.y()}, wtbminCorner}}; paths.back().push_back(fakeBrim); } } @@ -695,13 +695,13 @@ struct FakeWipeTower ExtrusionPath path(ExtrusionRole::erWipeTower, 0.0, 0.0, lh); - path.polyline = Polyline3(Polyline{{ minCorner, {maxCorner.x(), minCorner.y()}, maxCorner, {minCorner.x(), maxCorner.y()}, minCorner }}); + path.polyline = Polyline{{ minCorner, {maxCorner.x(), minCorner.y()}, maxCorner, {minCorner.x(), maxCorner.y()}, minCorner }}; paths.push_back({ path }); // We added the border, now add several parallel lines so we can detect an object that is fully inside the tower. // For now, simply use fixed spacing of 3mm. for (coord_t y=minCorner.y()+scale_(3.); y