diff options
author | Alessandro Ranellucci <aar@cpan.org> | 2015-07-01 22:47:17 +0300 |
---|---|---|
committer | Alessandro Ranellucci <aar@cpan.org> | 2015-07-01 22:47:17 +0300 |
commit | 801f629fdc973f7f60dc5e4c2135940f89c3b959 (patch) | |
tree | 2214cdcf0f193f73c820b520a8b380d717900c35 /xs/xsp | |
parent | ab858f320dd0d6a3dc535d4fa20ee4f31b350837 (diff) |
Ported Slic3r::GCode storage to XS
Diffstat (limited to 'xs/xsp')
-rw-r--r-- | xs/xsp/GCode.xsp | 86 | ||||
-rw-r--r-- | xs/xsp/Layer.xsp | 8 | ||||
-rw-r--r-- | xs/xsp/my.map | 4 | ||||
-rw-r--r-- | xs/xsp/typemap.xspt | 8 |
4 files changed, 105 insertions, 1 deletions
diff --git a/xs/xsp/GCode.xsp b/xs/xsp/GCode.xsp index c981259a0..8000b973a 100644 --- a/xs/xsp/GCode.xsp +++ b/xs/xsp/GCode.xsp @@ -62,3 +62,89 @@ void set_path(Polyline* value) %code{% THIS->path = *value; %}; }; + +%name{Slic3r::GCode} class GCode { + GCode(); + ~GCode(); + + Ref<Pointf> origin() + %code{% RETVAL = &(THIS->origin); %}; + void _set_origin(Pointf* value) + %code{% THIS->origin = *value; %}; + + Ref<FullPrintConfig> config() + %code{% RETVAL = &(THIS->config); %}; + + Ref<GCodeWriter> writer() + %code{% RETVAL = &(THIS->writer); %}; + + Ref<PlaceholderParser> placeholder_parser() + %code{% RETVAL = THIS->placeholder_parser; %}; + void set_placeholder_parser(PlaceholderParser* ptr) + %code{% THIS->placeholder_parser = ptr; %}; + + Ref<OozePrevention> ooze_prevention() + %code{% RETVAL = &(THIS->ooze_prevention); %}; + + Ref<Wipe> wipe() + %code{% RETVAL = &(THIS->wipe); %}; + + Ref<AvoidCrossingPerimeters> avoid_crossing_perimeters() + %code{% RETVAL = &(THIS->avoid_crossing_perimeters); %}; + + bool enable_loop_clipping() + %code{% RETVAL = THIS->enable_loop_clipping; %}; + void set_enable_loop_clipping(bool value) + %code{% THIS->enable_loop_clipping = value; %}; + + bool enable_cooling_markers() + %code{% RETVAL = THIS->enable_cooling_markers; %}; + void set_enable_cooling_markers(bool value) + %code{% THIS->enable_cooling_markers = value; %}; + + int layer_count() + %code{% RETVAL = THIS->layer_count; %}; + void set_layer_count(int value) + %code{% THIS->layer_count = value; %}; + + int layer_index() + %code{% RETVAL = THIS->layer_index; %}; + void set_layer_index(int value) + %code{% THIS->layer_index = value; %}; + + bool has_layer() + %code{% RETVAL = THIS->layer != NULL; %}; + Ref<Layer> layer() + %code{% RETVAL = THIS->layer; %}; + void set_layer(Layer* ptr) + %code{% THIS->layer = ptr; %}; + + bool _has_seam_position(PrintObject* ptr) + %code{% RETVAL = THIS->_seam_position.count(ptr) > 0; %}; + Clone<Point> _seam_position(PrintObject* ptr) + %code{% RETVAL = THIS->_seam_position[ptr]; %}; + void _set_seam_position(PrintObject* ptr, Point* pos) + %code{% THIS->_seam_position[ptr] = *pos; %}; + + bool first_layer() + %code{% RETVAL = THIS->first_layer; %}; + void set_first_layer(bool value) + %code{% THIS->first_layer = value; %}; + + unsigned int elapsed_time() + %code{% RETVAL = THIS->elapsed_time; %}; + void set_elapsed_time(unsigned int value) + %code{% THIS->elapsed_time = value; %}; + + bool last_pos_defined() + %code{% RETVAL = THIS->last_pos_defined; %}; + Ref<Point> last_pos() + %code{% RETVAL = &(THIS->last_pos); %}; + void set_last_pos(Point* value) + %code{% THIS->last_pos = *value; THIS->last_pos_defined = true; %}; + + double volumetric_speed() + %code{% RETVAL = THIS->volumetric_speed; %}; + void set_volumetric_speed(double value) + %code{% THIS->volumetric_speed = value; %}; +}; diff --git a/xs/xsp/Layer.xsp b/xs/xsp/Layer.xsp index e8372206c..c7795b453 100644 --- a/xs/xsp/Layer.xsp +++ b/xs/xsp/Layer.xsp @@ -70,6 +70,9 @@ int ptr() %code%{ RETVAL = (int)(intptr_t)THIS; %}; + Ref<SupportLayer> as_support_layer() + %code%{ RETVAL = dynamic_cast<SupportLayer*>(THIS); %}; + void make_slices(); void merge_slices(); bool any_internal_region_slice_contains_polyline(Polyline* polyline) @@ -80,7 +83,10 @@ %name{Slic3r::Layer::Support} class SupportLayer { // owned by PrintObject, no constructor/destructor - + + Ref<Layer> as_layer() + %code%{ RETVAL = THIS; %}; + Ref<ExPolygonCollection> support_islands() %code%{ RETVAL = &THIS->support_islands; %}; Ref<ExtrusionEntityCollection> support_fills() diff --git a/xs/xsp/my.map b/xs/xsp/my.map index 5f36db078..af6f9f042 100644 --- a/xs/xsp/my.map +++ b/xs/xsp/my.map @@ -182,6 +182,10 @@ OozePrevention* O_OBJECT_SLIC3R Ref<OozePrevention> O_OBJECT_SLIC3R_T Clone<OozePrevention> O_OBJECT_SLIC3R_T +GCode* O_OBJECT_SLIC3R +Ref<GCode> O_OBJECT_SLIC3R_T +Clone<GCode> O_OBJECT_SLIC3R_T + MotionPlanner* O_OBJECT_SLIC3R Ref<MotionPlanner> O_OBJECT_SLIC3R_T Clone<MotionPlanner> O_OBJECT_SLIC3R_T diff --git a/xs/xsp/typemap.xspt b/xs/xsp/typemap.xspt index 675da7beb..8b4eb0850 100644 --- a/xs/xsp/typemap.xspt +++ b/xs/xsp/typemap.xspt @@ -133,6 +133,14 @@ %typemap{Ref<Wipe>}{simple}; %typemap{Clone<Wipe>}{simple}; +%typemap{OozePrevention*}; +%typemap{Ref<OozePrevention>}{simple}; +%typemap{Clone<OozePrevention>}{simple}; + +%typemap{GCode*}; +%typemap{Ref<GCode>}{simple}; +%typemap{Clone<GCode>}{simple}; + %typemap{Points}; %typemap{Pointfs}; |