Revert "Revert "Merge branch 'master' of https://github.com/QIDITECH/QIDISlicer""

This reverts commit 5bba8ccb1b.
This commit is contained in:
sunsets
2024-01-17 14:38:24 +08:00
parent 5bba8ccb1b
commit bf9dbfae79
12 changed files with 594 additions and 13 deletions

View File

@@ -106,31 +106,56 @@ void LayerRegion::make_perimeters(
// Cummulative sum of polygons over all the regions.
const ExPolygons *lower_slices = this->layer()->lower_layer ? &this->layer()->lower_layer->lslices : nullptr;
//w16
const ExPolygons *upper_slices = this->layer()->upper_layer ? &this->layer()->upper_layer->lslices : nullptr;
// Cache for offsetted lower_slices
Polygons lower_layer_polygons_cache;
Polygons upper_layer_polygons_cache;
for (const Surface &surface : slices) {
auto perimeters_begin = uint32_t(m_perimeters.size());
auto gap_fills_begin = uint32_t(m_thin_fills.size());
auto fill_expolygons_begin = uint32_t(fill_expolygons.size());
if (this->layer()->object()->config().perimeter_generator.value == PerimeterGeneratorType::Arachne && !spiral_vase)
PerimeterGenerator::process_arachne(
//w16
if (this->layer()->object()->config().top_one_wall_type == TopOneWallType::Alltop)
PerimeterGenerator::process_with_one_wall_arachne(
// input:
params,
surface,
lower_slices,
//w16
upper_slices,
lower_layer_polygons_cache,
upper_layer_polygons_cache,
// output:
m_perimeters,
m_thin_fills,
fill_expolygons);
else
PerimeterGenerator::process_arachne(
// input:
params,
surface,
lower_slices,
upper_slices,
lower_layer_polygons_cache,
// output:
m_perimeters,
m_thin_fills,
fill_expolygons);
else
PerimeterGenerator::process_classic(
// input:
params,
surface,
lower_slices,
//w16
upper_slices,
lower_layer_polygons_cache,
upper_layer_polygons_cache,
// output:
m_perimeters,
m_thin_fills,