Slic3r/xs/xsp/Filler.xsp

81 lines
2.4 KiB
Plaintext

%module{Slic3r::XS};
%{
#include <xsinit.h>
#include "libslic3r/Fill/Fill.hpp"
#include "libslic3r/PolylineCollection.hpp"
#include "libslic3r/ExtrusionEntity.hpp"
#include "libslic3r/ExtrusionEntityCollection.hpp"
%}
%name{Slic3r::Filler} class Filler {
~Filler();
void set_bounding_box(BoundingBox *bbox)
%code{% THIS->fill->bounding_box = *bbox; %};
void set_min_spacing(coordf_t spacing)
%code{% THIS->fill->min_spacing = spacing; %};
coordf_t min_spacing()
%code{% RETVAL = THIS->fill->min_spacing; %};
coordf_t spacing()
%code{% RETVAL = THIS->fill->spacing(); %};
void set_endpoints_overlap(float overlap)
%code{% THIS->fill->endpoints_overlap = overlap; %};
float endpoints_overlap()
%code{% RETVAL = THIS->fill->endpoints_overlap; %};
void set_layer_id(size_t layer_id)
%code{% THIS->fill->layer_id = layer_id; %};
void set_z(coordf_t z)
%code{% THIS->fill->z = z; %};
void set_angle(float angle)
%code{% THIS->fill->angle = angle; %};
void set_link_max_length(coordf_t len)
%code{% THIS->fill->link_max_length = len; %};
void set_loop_clipping(coordf_t clipping)
%code{% THIS->fill->loop_clipping = clipping; %};
bool use_bridge_flow()
%code{% RETVAL = THIS->fill->use_bridge_flow(); %};
bool no_sort()
%code{% RETVAL = THIS->fill->no_sort(); %};
void set_density(float density)
%code{% THIS->fill->density = density; %};
void set_dont_connect(bool dont_connect)
%code{% THIS->fill->dont_connect = dont_connect; %};
void set_dont_adjust(bool dont_adjust)
%code{% THIS->fill->dont_adjust = dont_adjust; %};
void set_complete(bool complete)
%code{% THIS->fill->complete = complete; %};
PolylineCollection* _fill_surface(Surface *surface)
%code{%
PolylineCollection *pc = NULL;
if (THIS->fill != NULL) {
pc = new PolylineCollection();
pc->polylines = THIS->fill->fill_surface(*surface);
}
RETVAL = pc;
%};
%{
Filler*
new_from_type(CLASS, type)
char* CLASS;
std::string type;
CODE:
Filler *filler = new Filler();
filler->fill = Fill::new_from_type(type);
RETVAL = filler;
OUTPUT:
RETVAL
%}
};