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

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'xs/src/libslic3r/Extruder.cpp')
-rw-r--r--xs/src/libslic3r/Extruder.cpp128
1 files changed, 128 insertions, 0 deletions
diff --git a/xs/src/libslic3r/Extruder.cpp b/xs/src/libslic3r/Extruder.cpp
new file mode 100644
index 000000000..d327276f8
--- /dev/null
+++ b/xs/src/libslic3r/Extruder.cpp
@@ -0,0 +1,128 @@
+#include "Extruder.hpp"
+
+namespace Slic3r {
+
+Extruder::Extruder(int id, PrintConfig *config)
+: id(id),
+ config(config)
+{
+ reset();
+}
+
+void
+Extruder::reset()
+{
+ this->E = 0;
+ this->absolute_E = 0;
+ this->retracted = 0;
+ this->restart_extra = 0;
+}
+
+double
+Extruder::extrude(double dE)
+{
+ if (this->config->use_relative_e_distances) {
+ this->E = 0;
+ }
+
+ this->E += dE;
+ this->absolute_E += dE;
+ return this->E;
+}
+
+Pointf
+Extruder::extruder_offset() const
+{
+ return this->config->extruder_offset.get_at(this->id);
+}
+
+double
+Extruder::nozzle_diameter() const
+{
+ return this->config->nozzle_diameter.get_at(this->id);
+}
+
+double
+Extruder::filament_diameter() const
+{
+ return this->config->filament_diameter.get_at(this->id);
+}
+
+double
+Extruder::extrusion_multiplier() const
+{
+ return this->config->extrusion_multiplier.get_at(this->id);
+}
+
+int
+Extruder::temperature() const
+{
+ return this->config->temperature.get_at(this->id);
+}
+
+int
+Extruder::first_layer_temperature() const
+{
+ return this->config->first_layer_temperature.get_at(this->id);
+}
+
+double
+Extruder::retract_length() const
+{
+ return this->config->retract_length.get_at(this->id);
+}
+
+double
+Extruder::retract_lift() const
+{
+ return this->config->retract_lift.get_at(this->id);
+}
+
+int
+Extruder::retract_speed() const
+{
+ return this->config->retract_speed.get_at(this->id);
+}
+
+double
+Extruder::retract_restart_extra() const
+{
+ return this->config->retract_restart_extra.get_at(this->id);
+}
+
+double
+Extruder::retract_before_travel() const
+{
+ return this->config->retract_before_travel.get_at(this->id);
+}
+
+bool
+Extruder::retract_layer_change() const
+{
+ return this->config->retract_layer_change.get_at(this->id);
+}
+
+double
+Extruder::retract_length_toolchange() const
+{
+ return this->config->retract_length_toolchange.get_at(this->id);
+}
+
+double
+Extruder::retract_restart_extra_toolchange() const
+{
+ return this->config->retract_restart_extra_toolchange.get_at(this->id);
+}
+
+bool
+Extruder::wipe() const
+{
+ return this->config->wipe.get_at(this->id);
+}
+
+
+#ifdef SLIC3RXS
+REGISTER_CLASS(Extruder, "Extruder");
+#endif
+
+}