%module{Slic3r::XS}; %{ #include <xsinit.h> #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<GCode> gcodegen(); std::string process_layer(std::string gcode, size_t layer_id); }; %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<Vec2d> origin() %code{% RETVAL = &(THIS->origin()); %}; void set_origin(Vec2d* pointf) %code{% THIS->set_origin(*pointf); %}; Ref<Point> last_pos() %code{% RETVAL = &(THIS->last_pos()); %}; unsigned int layer_count() const; void set_layer_count(unsigned int value); void set_extruders(std::vector<unsigned int> 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<PrintConfig*>(print_config)) { THIS->apply_print_config(*config); } else { CONFESS("A PrintConfig object was not supplied to apply_print_config()"); } %}; Ref<StaticPrintConfig> config() %code{% RETVAL = const_cast<StaticPrintConfig*>(static_cast<const StaticPrintConfig*>(static_cast<const PrintObjectConfig*>(&THIS->config()))); %}; };