From f518e0675c5672215c9543dae36a068f7c56b4c4 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Mon, 12 Sep 2016 16:25:15 +0200 Subject: Initial commit of the new Pressure Equalizer, the EdgeGrid signed distance field structure. The EdgeGrid is used to avoid placing the seams on overhangs. --- xs/xsp/GCodePressureEqualizer.xsp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 xs/xsp/GCodePressureEqualizer.xsp (limited to 'xs/xsp/GCodePressureEqualizer.xsp') diff --git a/xs/xsp/GCodePressureEqualizer.xsp b/xs/xsp/GCodePressureEqualizer.xsp new file mode 100644 index 000000000..39372e0e0 --- /dev/null +++ b/xs/xsp/GCodePressureEqualizer.xsp @@ -0,0 +1,32 @@ +%module{Slic3r::XS}; + +%{ +#include +#include "libslic3r/GCode/PressureEqualizer.hpp" +%} + +%name{Slic3r::GCode::PressureEqualizer} class GCodePressureEqualizer { + GCodePressureEqualizer(StaticPrintConfig* config) + %code%{ RETVAL = new GCodePressureEqualizer(dynamic_cast(config)); %}; + ~GCodePressureEqualizer(); + + void reset(); + + // Process a next batch of G-code lines. Flush the internal buffers if asked for. +// const char* process(const char *szGCode, bool flush); +// std::string process(const char *szGCode, bool flush) +// %code{% const char *out = THIS->process(szGCode, flush); RETVAL = (out == NULL) ? "" : std::string(out); %}; + +%{ + +SV* +GCodePressureEqualizer::process(const char *szGCode, bool flush) + CODE: + const char *out = THIS->process(szGCode, flush); + RETVAL = newSVpv(out, THIS->get_output_buffer_length()); + OUTPUT: + RETVAL + +%} + +}; -- cgit v1.2.3