diff options
author | Vojtech Bubnik <bubnikv@gmail.com> | 2021-09-21 17:03:30 +0300 |
---|---|---|
committer | Vojtech Bubnik <bubnikv@gmail.com> | 2021-09-21 17:04:04 +0300 |
commit | a5a7f64db08bbd1c93c0800b3f96d0e372ca1e40 (patch) | |
tree | b352e91bd2abc45b78c1b0b14a62f339a596eb8a | |
parent | 306b54bc0a78ba768aa7544f117c2884a3af833e (diff) |
Mesh statistics for imported STLs: Added backwards_edges to open_edges,
so that a mesh with incorrectly oriented faces will not be considered
a manifold.
Added assert for 3D convex hulls constructed by QHull. They shall be
manifold (however sometimes they are not).
-rw-r--r-- | src/libslic3r/TriangleMesh.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp index 183b195a1..73ac2eade 100644 --- a/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp @@ -191,7 +191,7 @@ bool TriangleMesh::ReadSTLFile(const char* input_file, bool repair) auto facets_w_1_bad_edge = stl.stats.connected_facets_2_edge - stl.stats.connected_facets_3_edge; auto facets_w_2_bad_edge = stl.stats.connected_facets_1_edge - stl.stats.connected_facets_2_edge; auto facets_w_3_bad_edge = stl.stats.number_of_facets - stl.stats.connected_facets_1_edge; - m_stats.open_edges = facets_w_1_bad_edge + facets_w_2_bad_edge * 2 + facets_w_3_bad_edge * 3; + m_stats.open_edges = stl.stats.backwards_edges + facets_w_1_bad_edge + facets_w_2_bad_edge * 2 + facets_w_3_bad_edge * 3; m_stats.edges_fixed = stl.stats.edges_fixed; m_stats.degenerate_facets = stl.stats.degenerate_facets; @@ -507,7 +507,9 @@ TriangleMesh TriangleMesh::convex_hull_3d() const } } - return TriangleMesh { std::move(dst_vertices), std::move(dst_facets) }; + TriangleMesh mesh{ std::move(dst_vertices), std::move(dst_facets) }; + assert(mesh.stats().manifold()); + return mesh; } std::vector<ExPolygons> TriangleMesh::slice(const std::vector<double> &z) const |