From 4418a9b926589b6b96acafe3546098c9cd6854b1 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Tue, 7 May 2019 14:03:19 +0200 Subject: [PATCH 1/3] wxMenuItem::SetDisabledBitmap is only available on Windows --- src/slic3r/GUI/wxExtensions.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index a58881946d..7485d63751 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -57,11 +57,6 @@ wxMenuItem* append_menu_item(wxMenu* menu, int id, const wxString& string, const auto *item = new wxMenuItem(menu, id, string, description); if (icon.IsOk()) { item->SetBitmap(icon); -#ifndef __WXMSW__ - wxImage imgGrey = icon.ConvertToImage().ConvertToGreyscale(); - if (imgGrey.IsOk()) - item->SetDisabledBitmap(wxBitmap(imgGrey)); -#endif /* __WXMSW__ */ } menu->Append(item); @@ -100,10 +95,6 @@ wxMenuItem* append_submenu(wxMenu* menu, wxMenu* sub_menu, int id, const wxStrin item->SetBitmap(create_scaled_bitmap(nullptr, icon)); // FIXME: pass window ptr #ifdef __WXMSW__ msw_menuitem_bitmaps[id] = icon; -#else /* __WXMSW__ */ - wxImage imgGrey = icon.ConvertToImage().ConvertToGreyscale(); - if (imgGrey.IsOk()) - item->SetDisabledBitmap(wxBitmap(imgGrey)); #endif /* __WXMSW__ */ } From 61a0ab42808a0e64ffdaf58ede5b33b103854f75 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Tue, 7 May 2019 15:09:15 +0200 Subject: [PATCH 2/3] Workaround to fix crash reported in #2209 --- src/admesh/normals.cpp | 3 +++ src/libslic3r/ModelArrange.cpp | 9 +++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/admesh/normals.cpp b/src/admesh/normals.cpp index a8faa44bd2..0ad134360f 100644 --- a/src/admesh/normals.cpp +++ b/src/admesh/normals.cpp @@ -108,6 +108,9 @@ stl_fix_normal_directions(stl_file *stl) { if (stl->error) return; + // this may happen for malformed models, see: https://github.com/prusa3d/Slic3r/issues/2209 + if (stl->stats.number_of_facets == 0) return; + /* Initialize linked list. */ head = (struct stl_normal*)malloc(sizeof(struct stl_normal)); if(head == NULL) perror("stl_fix_normal_directions"); diff --git a/src/libslic3r/ModelArrange.cpp b/src/libslic3r/ModelArrange.cpp index 50901da3ac..c821eef77a 100644 --- a/src/libslic3r/ModelArrange.cpp +++ b/src/libslic3r/ModelArrange.cpp @@ -567,8 +567,13 @@ ShapeData2D projectModelFromTop(const Slic3r::Model &model) { Transform3d trafo_instance = Geometry::assemble_transform(Vec3d::Zero(), rotation, finst->get_scaling_factor(), finst->get_mirror()); Polygon p = objptr->convex_hull_2d(trafo_instance); assert(! p.points.empty()); - p.reverse(); - assert(! p.is_counter_clockwise()); + + // this may happen for malformed models, see: https://github.com/prusa3d/Slic3r/issues/2209 + if (p.points.empty()) + continue; + + p.reverse(); + assert(!p.is_counter_clockwise()); p.append(p.first_point()); clpath = Slic3rMultiPoint_to_ClipperPath(p); } From 2ce0c575f609abbe3c25a1ab6eb0a0dfa8c32090 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Tue, 7 May 2019 15:37:41 +0200 Subject: [PATCH 3/3] Fixed objects rendering when turning off sla supports gizmo --- src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp index 017c00143c..1400bef5ef 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp @@ -79,6 +79,8 @@ void GLGizmoSlaSupports::set_sla_support_data(ModelObject* model_object, const S m_parent.toggle_model_objects_visibility(false); m_parent.toggle_model_objects_visibility(true, m_model_object, m_active_instance); } + else + m_parent.toggle_model_objects_visibility(true, nullptr, -1); } }