%module{Slic3r::XS}; %{ #include #include "libslic3r/GCode.hpp" #include "libslic3r/GCode/CoolingBuffer.hpp" %} %name{Slic3r::GCode::CoolingBuffer} class CoolingBuffer { CoolingBuffer(GCode* gcode) %code{% RETVAL = new CoolingBuffer(*gcode); %}; ~CoolingBuffer(); Ref gcodegen(); std::string process_layer(std::string gcode, size_t layer_id) %code{% RETVAL = THIS->process_layer(std::move(gcode), layer_id, true); %}; }; %name{Slic3r::GCode} class GCode { GCode(); ~GCode(); void do_export(Print *print, const char *path) %code%{ try { THIS->do_export(print, path); } catch (std::exception& e) { croak("%s\n", e.what()); } %}; Ref origin() %code{% RETVAL = &(THIS->origin()); %}; void set_origin(Vec2d* pointf) %code{% THIS->set_origin(*pointf); %}; Ref last_pos() %code{% RETVAL = &(THIS->last_pos()); %}; unsigned int layer_count() const; void set_layer_count(unsigned int value); void set_extruders(std::vector extruders) %code{% THIS->writer().set_extruders(extruders); THIS->writer().set_extruder(0); %}; void apply_print_config(StaticPrintConfig* print_config) %code{% if (const PrintConfig* config = dynamic_cast(print_config)) { THIS->apply_print_config(*config); } else { CONFESS("A PrintConfig object was not supplied to apply_print_config()"); } %}; Ref config() %code{% RETVAL = const_cast(static_cast(static_cast(&THIS->config()))); %}; };