Fixed the orientation of ExtrusionLoops when Arachne is used.

This commit is contained in:
Lukáš Hejl 2022-06-15 23:24:43 +02:00
parent 2d7d8ba2f6
commit f34c1f14da
4 changed files with 51 additions and 7 deletions

View file

@ -18,6 +18,8 @@
#include <boost/log/trivial.hpp>
//#define ARACHNE_STITCH_PATCH_DEBUG
namespace Slic3r::Arachne
{
@ -549,7 +551,7 @@ void WallToolPaths::stitchToolPaths(std::vector<VariableWidthLines> &toolpaths,
VariableWidthLines stitched_polylines;
VariableWidthLines closed_polygons;
PolylineStitcher<VariableWidthLines, ExtrusionLine, ExtrusionJunction>::stitch(wall_lines, stitched_polylines, closed_polygons, stitch_distance);
#ifdef DEBUG
#ifdef ARACHNE_STITCH_PATCH_DEBUG
for (const ExtrusionLine& line : stitched_polylines) {
if ( ! line.is_odd && line.polylineLength() > 3 * stitch_distance && line.size() > 3) {
BOOST_LOG_TRIVIAL(error) << "Some even contour lines could not be closed into polygons!";
@ -608,7 +610,7 @@ void WallToolPaths::stitchToolPaths(std::vector<VariableWidthLines> &toolpaths,
}
}
}
#endif // DEBUG
#endif // ARACHNE_STITCH_PATCH_DEBUG
wall_lines = stitched_polylines; // replace input toolpaths with stitched polylines
for (ExtrusionLine& wall_polygon : closed_polygons)