Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbubnikv <bubnikv@gmail.com>2017-06-23 11:13:09 +0300
committerbubnikv <bubnikv@gmail.com>2017-06-23 11:13:09 +0300
commit32fa84c5a576febe4fab04f0fb7ffa53aec530ff (patch)
tree2566911fc499a0a40dd7b3ddc628fc9caabdfdd4 /xs/src/libslic3r/GCodeWriter.hpp
parent39b93413591ed12149127e8aefa3400b7cd07286 (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.hpp22
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;