#ifndef slic3r_GUI_TickCode_hpp_ #define slic3r_GUI_TickCode_hpp_ #include "libslic3r/CustomGCode.hpp" #include "IMSlider_Utils.hpp" #include namespace Slic3r { using namespace CustomGCode; namespace GUI { struct TickCode { bool operator<(const TickCode& other) const { return other.tick > this->tick; } bool operator>(const TickCode& other) const { return other.tick < this->tick; } int tick = 0; Type type = ColorChange; int extruder = 0; std::string color; std::string extra; }; class TickCodeInfo { std::string pause_print_msg; bool m_suppress_plus = false; bool m_suppress_minus = false; bool m_use_default_colors = false; std::vector* m_colors{ nullptr };// reference to IMSlider::m_extruder_colors ColorGenerator color_generator; std::string get_color_for_tick(TickCode tick, Type type, const int extruder); public: std::set ticks{}; Mode mode = Undef; bool empty() const { return ticks.empty(); } void set_pause_print_msg(const std::string& message) { pause_print_msg = message; } bool add_tick(const int tick, Type type, int extruder, double print_z); bool edit_tick(std::set::iterator it, double print_z); void switch_code(Type type_from, Type type_to); bool switch_code_for_tick(std::set::iterator it, Type type_to, const int extruder); void erase_all_ticks_with_code(Type type); bool has_tick_with_code(Type type); bool has_tick(int tick); void suppress_plus(bool suppress) { m_suppress_plus = suppress; } void suppress_minus(bool suppress) { m_suppress_minus = suppress; } bool suppressed_plus() { return m_suppress_plus; } bool suppressed_minus() { return m_suppress_minus; } void set_default_colors(bool default_colors_on) { m_use_default_colors = default_colors_on; } void set_extruder_colors(std::vector* extruder_colors) { m_colors = extruder_colors; } }; }} // Slic3r #endif // slic3r_GUI_TickCode_hpp_