diff options
Diffstat (limited to 'xs/src/libslic3r/Extruder.cpp')
-rw-r--r-- | xs/src/libslic3r/Extruder.cpp | 128 |
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 + +} |