diff options
author | Filip Sykala <filip.sykala@prusa3d.cz> | 2021-08-06 16:11:20 +0300 |
---|---|---|
committer | Filip Sykala <filip.sykala@prusa3d.cz> | 2021-08-06 16:11:20 +0300 |
commit | ef5c94f90adec4f77ec56e3dd5f32b564dde8bc7 (patch) | |
tree | c5f5ac30c180521290487ec1a3d788409fe53ff6 /tests/libslic3r | |
parent | fc4b18ebb1b27606114d5444764829c796aef666 (diff) |
Fix: prevent degeneration of model during simplification
Diffstat (limited to 'tests/libslic3r')
-rw-r--r-- | tests/libslic3r/test_indexed_triangle_set.cpp | 12 |
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); +} |