From 0f27f9d00d76666b2db995a292b22f84db630ae9 Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Wed, 5 Mar 2025 13:04:28 +0800 Subject: [PATCH] ENH:Unified color scheme for sectional views jira: STUDIO-10704 Change-Id: I957f71f1610d000c89d81647b21c1f3afe79855e --- src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp | 8 ++++---- src/slic3r/GUI/OpenGLManager.cpp | 9 +++++++++ src/slic3r/GUI/OpenGLManager.hpp | 6 ++++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp index 35fe5d37a..cc4cab4a7 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp @@ -7,7 +7,7 @@ #include "slic3r/GUI/GUI_App.hpp" #include "slic3r/GUI/Camera.hpp" #include "slic3r/GUI/Plater.hpp" - +#include "slic3r/GUI/OpenGLManager.hpp" #include "libslic3r/PresetBundle.hpp" #include @@ -430,7 +430,7 @@ void CommonGizmosDataObjects::ObjectClipper::render_cut(const std::vectorset_plane(*m_clp); clipper.first->set_transformation(trafo); clipper.first->set_limiting_plane(ClippingPlane(Vec3d::UnitZ(), -SINKING_Z_THRESHOLD)); - clipper.first->render_cut({1.0f, 0.37f, 0.0f, 1.0f}, &ignore_idxs_local); + clipper.first->render_cut(OpenGLManager::get_cut_plane_color(), &ignore_idxs_local); clipper.first->render_contour({1.f, 1.f, 1.f, 1.f}, &ignore_idxs_local); // Now update the ignore idxs. Find the first element belonging to the next clipper, @@ -618,7 +618,7 @@ void SupportsClipper::render_cut() const m_clipper->set_plane(*ocl->get_clipping_plane()); m_clipper->set_transformation(supports_trafo); - m_clipper->render_cut({1.0f, 0.f, 0.37f, 1.0f}); + m_clipper->render_cut(OpenGLManager::get_cut_plane_color()); } @@ -765,7 +765,7 @@ void ModelObjectsClipper::render_cut() const clipper->set_plane(*m_clp); clipper->set_transformation(trafo); // BBS - clipper->render_cut({0.25f, 0.25f, 0.25f, 1.0f}); + clipper->render_cut(OpenGLManager::get_cut_plane_color()); ++clipper_id; } diff --git a/src/slic3r/GUI/OpenGLManager.cpp b/src/slic3r/GUI/OpenGLManager.cpp index 788179af5..62cec3f75 100644 --- a/src/slic3r/GUI/OpenGLManager.cpp +++ b/src/slic3r/GUI/OpenGLManager.cpp @@ -476,6 +476,7 @@ bool OpenGLManager::m_use_manually_generated_mipmaps = true; OpenGLManager::EMultisampleState OpenGLManager::s_multisample = OpenGLManager::EMultisampleState::Unknown; OpenGLManager::EFramebufferType OpenGLManager::s_framebuffers_type = OpenGLManager::EFramebufferType::Unknown; bool OpenGLManager::s_b_initialized = false; +ColorRGBA OpenGLManager::s_cut_plane_color = {1.0f, 0.37f, 0.0f, 1.0f}; #ifdef __APPLE__ // Part of hack to remove crash when closing the application on OSX 10.9.5 when building against newer wxWidgets OpenGLManager::OSInfo OpenGLManager::s_os_info; @@ -1013,6 +1014,14 @@ wxGLCanvas* OpenGLManager::create_wxglcanvas(wxWindow& parent, EMSAAType msaa_ty return new wxGLCanvas(&parent, wxID_ANY, attribList, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS); } +void OpenGLManager::set_cut_plane_color(ColorRGBA color) { + s_cut_plane_color = color; +} + +const ColorRGBA &OpenGLManager::get_cut_plane_color(){ + return s_cut_plane_color; +} + void OpenGLManager::detect_multisample(int* attribList) { int wxVersion = wxMAJOR_VERSION * 10000 + wxMINOR_VERSION * 100 + wxRELEASE_NUMBER; diff --git a/src/slic3r/GUI/OpenGLManager.hpp b/src/slic3r/GUI/OpenGLManager.hpp index 4c85c9cbf..2603a377f 100644 --- a/src/slic3r/GUI/OpenGLManager.hpp +++ b/src/slic3r/GUI/OpenGLManager.hpp @@ -2,6 +2,7 @@ #define slic3r_OpenGLManager_hpp_ #include "GLShadersManager.hpp" +#include "libslic3r/Color.hpp" #include #include #include @@ -210,6 +211,8 @@ private: static EMultisampleState s_multisample; static EFramebufferType s_framebuffers_type; static bool m_use_manually_generated_mipmaps; + static ColorRGBA s_cut_plane_color; + public: OpenGLManager(); ~OpenGLManager(); @@ -252,6 +255,9 @@ public: static wxGLCanvas* create_wxglcanvas(wxWindow& parent, EMSAAType msaa_type = EMSAAType::Disabled); static const GLInfo& get_gl_info() { return s_gl_info; } static bool use_manually_generated_mipmaps() { return m_use_manually_generated_mipmaps; } + static void set_cut_plane_color(ColorRGBA); + static const ColorRGBA &get_cut_plane_color(); + private: static void detect_multisample(int* attribList); void _bind_frame_buffer(const std::string& name, EMSAAType msaa_type, uint32_t t_width = 0, uint32_t t_height = 0);