1 #ifndef slic3r_GLGizmoFdmSupports_hpp_
2 #define slic3r_GLGizmoFdmSupports_hpp_
3 
4 #include "GLGizmoPainterBase.hpp"
5 
6 namespace Slic3r {
7 
8 namespace GUI {
9 
10 class GLGizmoFdmSupports : public GLGizmoPainterBase
11 {
12 public:
GLGizmoFdmSupports(GLCanvas3D & parent,const std::string & icon_filename,unsigned int sprite_id)13     GLGizmoFdmSupports(GLCanvas3D& parent, const std::string& icon_filename, unsigned int sprite_id)
14         : GLGizmoPainterBase(parent, icon_filename, sprite_id) {}
15 
16     void render_painter_gizmo() const override;
17 
18 protected:
19     void on_render_input_window(float x, float y, float bottom_limit) override;
20     std::string on_get_name() const override;
21 
22 private:
23     bool on_init() override;
24 
25     void update_model_object() const override;
26     void update_from_model_object() override;
27 
on_opening()28     void on_opening() override {}
29     void on_shutdown() override;
30     PainterGizmoType get_painter_type() const override;
31 
32     void select_facets_by_angle(float threshold, bool block);
33     float m_angle_threshold_deg = 45.f;
34     bool m_setting_angle = false;
35 
36     // This map holds all translated description texts, so they can be easily referenced during layout calculations
37     // etc. When language changes, GUI is recreated and this class constructed again, so the change takes effect.
38     std::map<std::string, wxString> m_desc;
39 };
40 
41 
42 
43 } // namespace GUI
44 } // namespace Slic3r
45 
46 
47 #endif // slic3r_GLGizmoFdmSupports_hpp_
48