Collect the perimeter surfaces when generating perimeters.

The perimeter surfaces are later used for performing infill
below overhangs and to maintan configured vertical wall thickness
at sloping surfaces.
This commit is contained in:
bubnikv 2016-09-26 13:44:23 +02:00
parent 8f04f5d5f6
commit e0d1aa8a1a
7 changed files with 226 additions and 22 deletions

View file

@ -52,6 +52,7 @@ public:
// Outputs:
ExtrusionEntityCollection* loops;
ExtrusionEntityCollection* gap_fill;
SurfaceCollection* perimeter_surfaces;
SurfaceCollection* fill_surfaces;
PerimeterGenerator(
@ -67,13 +68,15 @@ public:
ExtrusionEntityCollection* loops,
// Gaps without the thin walls
ExtrusionEntityCollection* gap_fill,
// Perimeters including their gap fills
SurfaceCollection* perimeter_surfaces,
// Infills without the gap fills
SurfaceCollection* fill_surfaces)
: slices(slices), lower_slices(NULL), layer_height(layer_height),
layer_id(-1), perimeter_flow(flow), ext_perimeter_flow(flow),
overhang_flow(flow), solid_infill_flow(flow),
config(config), object_config(object_config), print_config(print_config),
loops(loops), gap_fill(gap_fill), fill_surfaces(fill_surfaces),
loops(loops), gap_fill(gap_fill), perimeter_surfaces(perimeter_surfaces), fill_surfaces(fill_surfaces),
_ext_mm3_per_mm(-1), _mm3_per_mm(-1), _mm3_per_mm_overhang(-1)
{};
void process();