diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp index 9b390e8c64..1b83e16a24 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp @@ -644,7 +644,8 @@ void GLGizmoFdmSupports::update_from_model_object(bool first_update) const TriangleMesh* mesh = &mv->mesh(); m_triangle_selectors.emplace_back(std::make_unique(*mesh, ebt_colors)); // Reset of TriangleSelector is done inside TriangleSelectorGUI's constructor, so we don't need it to perform it again in deserialize(). - m_triangle_selectors.back()->deserialize(mv->supported_facets.get_data(), false); + // The colour table has NONE/ENFORCER/BLOCKER only: a higher state in the file is reset to NONE. + m_triangle_selectors.back()->deserialize(mv->supported_facets.get_data(), false, EnforcerBlockerType::BLOCKER); m_triangle_selectors.back()->request_update_render_data(); //BBS: add timestamp logic diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp index d38927dd47..b5aee19f86 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp @@ -397,7 +397,8 @@ void GLGizmoFuzzySkin::update_from_model_object(bool first_update) const TriangleMesh* mesh = &mv->mesh(); m_triangle_selectors.emplace_back(std::make_unique(*mesh, ebt_colors)); // Reset of TriangleSelector is done inside TriangleSelectorGUI's constructor, so we don't need it to perform it again in deserialize(). - m_triangle_selectors.back()->deserialize(mv->fuzzy_skin_facets.get_data(), false); + // Fuzzy skin paints a single state (FUZZY_SKIN): a higher state in the file is reset to NONE. + m_triangle_selectors.back()->deserialize(mv->fuzzy_skin_facets.get_data(), false, EnforcerBlockerType::FUZZY_SKIN); m_triangle_selectors.back()->request_update_render_data(); } } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp index 0f71ee546a..6a0019caf2 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp @@ -1,6 +1,7 @@ #include "GLGizmoSeam.hpp" #include "libslic3r/Model.hpp" +#include "libslic3r/TriangleSelector.hpp" //#include "slic3r/GUI/3DScene.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" @@ -327,7 +328,8 @@ void GLGizmoSeam::update_from_model_object(bool first_update) m_triangle_selectors.emplace_back(std::make_unique(*mesh, ebt_colors)); // Reset of TriangleSelector is done inside TriangleSelectorGUI's constructor, so we don't need it to perform it again in deserialize(). - m_triangle_selectors.back()->deserialize(mv->seam_facets.get_data(), false); + // The colour table has NONE/ENFORCER/BLOCKER only: a higher state in the file is reset to NONE. + m_triangle_selectors.back()->deserialize(mv->seam_facets.get_data(), false, EnforcerBlockerType::BLOCKER); m_triangle_selectors.back()->request_update_render_data(); } } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.cpp b/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.cpp index 7d7d0e7434..16d70a7340 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.cpp @@ -3739,7 +3739,8 @@ void GLGizmoTextureDisplacement::update_from_model_object(bool first_update) break; } m_triangle_selectors.emplace_back(std::make_unique(*mesh, ebt_colors)); - m_triangle_selectors.back()->deserialize(data, false); + // The mask uses a single state (ENFORCER): a higher state in the file is reset to NONE. + m_triangle_selectors.back()->deserialize(data, false, EnforcerBlockerType::ENFORCER); m_triangle_selectors.back()->request_update_render_data(); }