mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-09-26 14:23:15 +08:00
SPE-2477: Fix incorrectly classified a top layer as a bridge.
This commit is contained in:
parent
4a2e9d887a
commit
a7c3b911cf
@ -2359,7 +2359,10 @@ void PrintObject::bridge_over_infill()
|
|||||||
Polygons lightning_area;
|
Polygons lightning_area;
|
||||||
Polygons expansion_area;
|
Polygons expansion_area;
|
||||||
Polygons total_fill_area;
|
Polygons total_fill_area;
|
||||||
|
Polygons total_top_area;
|
||||||
for (const LayerRegion *region : layer->regions()) {
|
for (const LayerRegion *region : layer->regions()) {
|
||||||
|
Polygons top_polys = to_polygons(region->fill_surfaces().filter_by_types({stTop}));
|
||||||
|
total_top_area.insert(total_top_area.end(), top_polys.begin(), top_polys.end());
|
||||||
Polygons internal_polys = to_polygons(region->fill_surfaces().filter_by_types({stInternal, stInternalSolid}));
|
Polygons internal_polys = to_polygons(region->fill_surfaces().filter_by_types({stInternal, stInternalSolid}));
|
||||||
expansion_area.insert(expansion_area.end(), internal_polys.begin(), internal_polys.end());
|
expansion_area.insert(expansion_area.end(), internal_polys.begin(), internal_polys.end());
|
||||||
Polygons fill_polys = to_polygons(region->fill_expolygons());
|
Polygons fill_polys = to_polygons(region->fill_expolygons());
|
||||||
@ -2447,6 +2450,7 @@ void PrintObject::bridge_over_infill()
|
|||||||
bridging_area = closing(bridging_area, flow.scaled_spacing());
|
bridging_area = closing(bridging_area, flow.scaled_spacing());
|
||||||
bridging_area = intersection(bridging_area, limiting_area);
|
bridging_area = intersection(bridging_area, limiting_area);
|
||||||
bridging_area = intersection(bridging_area, total_fill_area);
|
bridging_area = intersection(bridging_area, total_fill_area);
|
||||||
|
bridging_area = diff(bridging_area, total_top_area);
|
||||||
expansion_area = diff(expansion_area, bridging_area);
|
expansion_area = diff(expansion_area, bridging_area);
|
||||||
|
|
||||||
#ifdef DEBUG_BRIDGE_OVER_INFILL
|
#ifdef DEBUG_BRIDGE_OVER_INFILL
|
||||||
|
Loading…
x
Reference in New Issue
Block a user