#ifndef _WIPE_TOWER_DIALOG_H_ #define _WIPE_TOWER_DIALOG_H_ #include #include #include "libslic3r/PrintConfig.hpp" #include "Widgets/SpinInput.hpp" #include "RammingChart.hpp" class RammingPanel : public wxPanel { public: RammingPanel(wxWindow* parent); RammingPanel(wxWindow* parent,const std::string& data); std::string get_parameters(); private: Chart* m_chart = nullptr; SpinInput* m_widget_volume = nullptr; SpinInput* m_widget_ramming_line_width_multiplicator = nullptr; SpinInput* m_widget_ramming_step_multiplicator = nullptr; SpinInput* m_widget_time = nullptr; int m_ramming_step_multiplicator; int m_ramming_line_width_multiplicator; void line_parameters_changed(); }; class RammingDialog : public wxDialog { public: RammingDialog(wxWindow* parent,const std::string& parameters); std::string get_parameters() { return m_output_data; } private: RammingPanel* m_panel_ramming = nullptr; std::string m_output_data; }; class WipingDialog : public wxDialog { public: using VolumeMatrix = std::vector>; WipingDialog(wxWindow* parent,const std::vector>& extra_flush_volume, const int max_flush_volume = Slic3r::g_max_flush_volume); VolumeMatrix CalcFlushingVolumes(int extruder_id); std::vector GetFlattenMatrix()const; std::vector GetMultipliers()const; bool GetSubmitFlag() const { return m_submit_flag; } private: int CalcFlushingVolume(const wxColour& from_, const wxColour& to_, int min_flush_volume, bool is_multi_extruder, Slic3r::NozzleVolumeType volume_type); wxString BuildTableObjStr(); wxString BuildTextObjStr(bool multi_language = true); void StoreFlushData(int extruder_num, const std::vector>& flush_volume_vecs, const std::vector& flush_multipliers); wxWebView* m_webview; std::vector> m_extra_flush_volume; int m_max_flush_volume; VolumeMatrix m_raw_matrixs; std::vector m_flush_multipliers; bool m_submit_flag{ false }; }; #endif // _WIPE_TOWER_DIALOG_H_