e0d1aa8a1a
The perimeter surfaces are later used for performing infill below overhangs and to maintan configured vertical wall thickness at sloping surfaces.
38 lines
1.5 KiB
Text
38 lines
1.5 KiB
Text
%module{Slic3r::XS};
|
|
|
|
%{
|
|
#include <xsinit.h>
|
|
#include "libslic3r/PerimeterGenerator.hpp"
|
|
%}
|
|
|
|
%name{Slic3r::Layer::PerimeterGenerator} class PerimeterGenerator {
|
|
PerimeterGenerator(SurfaceCollection* slices, double layer_height, Flow* flow,
|
|
StaticPrintConfig* region_config, StaticPrintConfig* object_config,
|
|
StaticPrintConfig* print_config, ExtrusionEntityCollection* loops,
|
|
ExtrusionEntityCollection* gap_fill,
|
|
SurfaceCollection* perimeter_surfaces, SurfaceCollection* fill_surfaces)
|
|
%code{% RETVAL = new PerimeterGenerator(slices, layer_height, *flow,
|
|
dynamic_cast<PrintRegionConfig*>(region_config),
|
|
dynamic_cast<PrintObjectConfig*>(object_config),
|
|
dynamic_cast<PrintConfig*>(print_config),
|
|
loops, gap_fill, perimeter_surfaces, fill_surfaces); %};
|
|
~PerimeterGenerator();
|
|
|
|
void set_lower_slices(ExPolygonCollection* lower_slices)
|
|
%code{% THIS->lower_slices = lower_slices; %};
|
|
void set_layer_id(int layer_id)
|
|
%code{% THIS->layer_id = layer_id; %};
|
|
void set_perimeter_flow(Flow* flow)
|
|
%code{% THIS->perimeter_flow = *flow; %};
|
|
void set_ext_perimeter_flow(Flow* flow)
|
|
%code{% THIS->ext_perimeter_flow = *flow; %};
|
|
void set_overhang_flow(Flow* flow)
|
|
%code{% THIS->overhang_flow = *flow; %};
|
|
void set_solid_infill_flow(Flow* flow)
|
|
%code{% THIS->solid_infill_flow = *flow; %};
|
|
|
|
Ref<StaticPrintConfig> config()
|
|
%code{% RETVAL = THIS->config; %};
|
|
|
|
void process();
|
|
};
|