Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/xs/xsp
diff options
context:
space:
mode:
authorAlessandro Ranellucci <aar@cpan.org>2015-07-01 22:47:17 +0300
committerAlessandro Ranellucci <aar@cpan.org>2015-07-01 22:47:17 +0300
commit801f629fdc973f7f60dc5e4c2135940f89c3b959 (patch)
tree2214cdcf0f193f73c820b520a8b380d717900c35 /xs/xsp
parentab858f320dd0d6a3dc535d4fa20ee4f31b350837 (diff)
Ported Slic3r::GCode storage to XS
Diffstat (limited to 'xs/xsp')
-rw-r--r--xs/xsp/GCode.xsp86
-rw-r--r--xs/xsp/Layer.xsp8
-rw-r--r--xs/xsp/my.map4
-rw-r--r--xs/xsp/typemap.xspt8
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};