From adabaccc9e76a24ace5091fd36b0d9f14bafc2d9 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Fri, 14 Apr 2023 08:36:47 +0200 Subject: [PATCH] TriangleMeshSlicer: Added tests for checking for non-manifold sets of contours created by the slicing algorithm. Currently these tests are disabled as it is known that such situations may appear. --- src/libslic3r/TriangleMeshSlicer.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/libslic3r/TriangleMeshSlicer.cpp b/src/libslic3r/TriangleMeshSlicer.cpp index 7faa79435..329c1c4ca 100644 --- a/src/libslic3r/TriangleMeshSlicer.cpp +++ b/src/libslic3r/TriangleMeshSlicer.cpp @@ -1911,6 +1911,16 @@ std::vector slice_mesh_ex( this_mode == MeshSlicingParams::SlicingMode::EvenOdd ? ClipperLib::pftEvenOdd : this_mode == MeshSlicingParams::SlicingMode::PositiveLargestContour ? ClipperLib::pftPositive : ClipperLib::pftNonZero, &expolygons); +#if 0 +//#ifndef _NDEBUG + for (const ExPolygon &ex : expolygons) { + assert(! has_duplicate_points(ex.contour)); + for (const Polygon &hole : ex.holes) + assert(! has_duplicate_points(hole)); + assert(! has_duplicate_points(ex)); + } + assert(!has_duplicate_points(expolygons)); +#endif // _NDEBUG //FIXME simplify if (this_mode == MeshSlicingParams::SlicingMode::PositiveLargestContour) keep_largest_contour_only(expolygons); @@ -1921,6 +1931,16 @@ std::vector slice_mesh_ex( append(simplified, ex.simplify(resolution)); expolygons = std::move(simplified); } +#if 0 +//#ifndef _NDEBUG + for (const ExPolygon &ex : expolygons) { + assert(! has_duplicate_points(ex.contour)); + for (const Polygon &hole : ex.holes) + assert(! has_duplicate_points(hole)); + assert(! has_duplicate_points(ex)); + } + assert(! has_duplicate_points(expolygons)); +#endif // _NDEBUG } }); // BOOST_LOG_TRIVIAL(debug) << "slice_mesh make_expolygons in parallel - end";