From 9f9f544bb976910c02f3f229312f0611adfc2b1e Mon Sep 17 00:00:00 2001 From: supermerill Date: Sun, 26 Sep 2021 23:38:34 +0200 Subject: [PATCH] fix seam placer when each object has its own layers use layer_z instead of layer_id --- src/libslic3r/GCode/SeamPlacer.cpp | 10 +++++----- src/libslic3r/GCode/SeamPlacer.hpp | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/libslic3r/GCode/SeamPlacer.cpp b/src/libslic3r/GCode/SeamPlacer.cpp index 07c4b04e8..3425de4a1 100644 --- a/src/libslic3r/GCode/SeamPlacer.cpp +++ b/src/libslic3r/GCode/SeamPlacer.cpp @@ -863,14 +863,14 @@ void SeamPlacer::apply_custom_seam(const Polygon& polygon, size_t po_idx, -std::optional SeamHistory::get_last_seam(const PrintObject* po, size_t layer_id, const BoundingBox& island_bb) +std::optional SeamHistory::get_last_seam(const PrintObject* po, coord_t layer_z, const BoundingBox& island_bb) { - assert(layer_id >= m_layer_id); - if (layer_id > m_layer_id) { + assert(layer_z >= m_layer_z); + if (layer_z > m_layer_z) { // Get seam was called for different layer than last time. m_data_last_layer = m_data_this_layer; m_data_this_layer.clear(); - m_layer_id = layer_id; + m_layer_z = layer_z; } @@ -918,7 +918,7 @@ void SeamHistory::add_seam(const PrintObject* po, const Point& pos, const Boundi void SeamHistory::clear() { - m_layer_id = 0; + m_layer_z = 0; m_data_last_layer.clear(); m_data_this_layer.clear(); } diff --git a/src/libslic3r/GCode/SeamPlacer.hpp b/src/libslic3r/GCode/SeamPlacer.hpp index f7e1b1589..d7b1cf0a7 100644 --- a/src/libslic3r/GCode/SeamPlacer.hpp +++ b/src/libslic3r/GCode/SeamPlacer.hpp @@ -20,7 +20,7 @@ namespace EdgeGrid { class Grid; } class SeamHistory { public: SeamHistory() { clear(); } - std::optional get_last_seam(const PrintObject* po, size_t layer_id, const BoundingBox& island_bb); + std::optional get_last_seam(const PrintObject* po, coord_t layer_z, const BoundingBox& island_bb); void add_seam(const PrintObject* po, const Point& pos, const BoundingBox& island_bb); void clear(); @@ -32,7 +32,7 @@ private: std::map> m_data_last_layer; std::map> m_data_this_layer; - size_t m_layer_id; + coord_t m_layer_z; };