diff options
author | bubnikv <bubnikv@gmail.com> | 2017-06-23 11:13:09 +0300 |
---|---|---|
committer | bubnikv <bubnikv@gmail.com> | 2017-06-23 11:13:09 +0300 |
commit | 32fa84c5a576febe4fab04f0fb7ffa53aec530ff (patch) | |
tree | 2566911fc499a0a40dd7b3ddc628fc9caabdfdd4 /xs/src/libslic3r/GCodeWriter.hpp | |
parent | 39b93413591ed12149127e8aefa3400b7cd07286 (diff) |
Fix of https://github.com/alexrj/Slic3r/issues/4043 , thanks to @lordofhyphens.
Further refactoring of the cooling logic to collect per extruder data.
Diffstat (limited to 'xs/src/libslic3r/GCodeWriter.hpp')
-rw-r--r-- | xs/src/libslic3r/GCodeWriter.hpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/xs/src/libslic3r/GCodeWriter.hpp b/xs/src/libslic3r/GCodeWriter.hpp index 02fca4129..37f15cc53 100644 --- a/xs/src/libslic3r/GCodeWriter.hpp +++ b/xs/src/libslic3r/GCodeWriter.hpp @@ -6,6 +6,7 @@ #include "Extruder.hpp" #include "Point.hpp" #include "PrintConfig.hpp" +#include "GCode/CoolingBuffer.hpp" namespace Slic3r { @@ -15,18 +16,23 @@ public: bool multiple_extruders; GCodeWriter() : - multiple_extruders(false), m_extrusion_axis("E"), m_extruder(nullptr), + multiple_extruders(false), m_extrusion_axis("E"), m_extruder(nullptr), m_elapsed_time(nullptr), m_single_extruder_multi_material(false), m_last_acceleration(0), m_last_fan_speed(0), m_last_bed_temperature(0), m_last_bed_temperature_reached(true), m_lifted(0) {} - Extruder* extruder() { return m_extruder; } - const Extruder* extruder() const { return m_extruder; } - std::string extrusion_axis() const { return m_extrusion_axis; } - void apply_print_config(const PrintConfig &print_config); + Extruder* extruder() { return m_extruder; } + const Extruder* extruder() const { return m_extruder; } + ElapsedTime* elapsed_time() { return m_elapsed_time; } + const ElapsedTime* elapsed_time() const { return m_elapsed_time; } + const std::vector<ElapsedTime>& elapsed_times() const { return m_elapsed_times; } + void reset_elapsed_times() { for (auto &et : m_elapsed_times) et.reset(); } + + std::string extrusion_axis() const { return m_extrusion_axis; } + void apply_print_config(const PrintConfig &print_config); // Extruders are expected to be sorted in an increasing order. - void set_extruders(const std::vector<unsigned int> &extruder_ids); + void set_extruders(const std::vector<unsigned int> &extruder_ids); const std::vector<Extruder>& extruders() const { return m_extruders; } std::vector<unsigned int> extruder_ids() const { std::vector<unsigned int> out; @@ -64,10 +70,12 @@ public: Pointf3 get_position() const { return m_pos; } private: - std::vector<Extruder> m_extruders; + std::vector<Extruder> m_extruders; + std::vector<ElapsedTime> m_elapsed_times; std::string m_extrusion_axis; bool m_single_extruder_multi_material; Extruder* m_extruder; + ElapsedTime* m_elapsed_time; unsigned int m_last_acceleration; unsigned int m_last_fan_speed; unsigned int m_last_bed_temperature; |