Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilip Sykala <filip.sykala@prusa3d.cz>2021-08-06 16:11:20 +0300
committerFilip Sykala <filip.sykala@prusa3d.cz>2021-08-06 16:11:20 +0300
commitef5c94f90adec4f77ec56e3dd5f32b564dde8bc7 (patch)
treec5f5ac30c180521290487ec1a3d788409fe53ff6 /tests/libslic3r
parentfc4b18ebb1b27606114d5444764829c796aef666 (diff)
Fix: prevent degeneration of model during simplification
Diffstat (limited to 'tests/libslic3r')
-rw-r--r--tests/libslic3r/test_indexed_triangle_set.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/tests/libslic3r/test_indexed_triangle_set.cpp b/tests/libslic3r/test_indexed_triangle_set.cpp
index b640d8410..0e08749bf 100644
--- a/tests/libslic3r/test_indexed_triangle_set.cpp
+++ b/tests/libslic3r/test_indexed_triangle_set.cpp
@@ -246,4 +246,14 @@ TEST_CASE("Simplify mesh by Quadric edge collapse to 5%", "[its]")
CHECK(fabs(original_volume - volume) < 33.);
float avg_distance = compare(mesh.its, its, 10);
CHECK(avg_distance < 0.022f); // 0.02022 | 0.0199614074
-} \ No newline at end of file
+}
+
+TEST_CASE("Simplify trouble case", "[its]")
+{
+ TriangleMesh tm = load_model("simplification.obj");
+ REQUIRE_FALSE(tm.empty());
+ float max_error = std::numeric_limits<float>::max();
+ uint32_t wanted_count = 8;
+ its_quadric_edge_collapse(tm.its, wanted_count, &max_error);
+ CHECK(tm.its.indices.size() <= 8);
+}