From 8541f5e8939762606701b59f02661a0d9e35c51b Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Tue, 12 Nov 2024 16:52:34 +0800 Subject: [PATCH] FIX:use flip_triangles when mesh volume < 0 jira: none Change-Id: I682c737398f347a3243b6202132aae65d5415bdf --- src/libslic3r/TriangleMesh.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp index a597648f1..5b4e55731 100644 --- a/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp @@ -206,6 +206,9 @@ bool TriangleMesh::from_stl(stl_file& stl, bool repair) stl_generate_shared_vertices(&stl, this->its); fill_initial_stats(this->its, this->m_stats); + if (m_stats.volume < 0) { + flip_triangles(); + } return true; } @@ -1720,8 +1723,7 @@ float its_volume(const indexed_triangle_set &its) float height = normal.dot(triangle[0] - p0); volume += (area * height) / 3.0f; } - - return std::abs(volume); + return volume; } float its_average_edge_length(const indexed_triangle_set &its)