79f5a16536
These could be calculated from the fill areas if needed. On the other side, the non-classified (non-split) fill areas are stored now for use in the "ensure vertical wall thickness" feature, also the non-split fill areas are re-used when recalculating the infills. This is safer than trying to stitch the fill region together from the classified fragments. Modified the "ensure vertical wall thickness" feature to use the non-split fill areas instead of perimeter areas for the calculation of non-supported regions. This is cheaper as the fill areas contain roughly half the edges.
39 lines
1.5 KiB
Plaintext
39 lines
1.5 KiB
Plaintext
%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* 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, 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();
|
|
};
|