From f6a0d1f0732fbc2d9e77369a5cbf562ae3e57629 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Thu, 28 Mar 2024 09:06:41 +0100 Subject: [PATCH] Fix #4273 ignore degenerate triangles in mesher output --- .../kernels/opencascade/OpenCascadeConversionResult.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/ifcgeom/kernels/opencascade/OpenCascadeConversionResult.cpp b/src/ifcgeom/kernels/opencascade/OpenCascadeConversionResult.cpp index 45bbca333b..4e48a6ce72 100644 --- a/src/ifcgeom/kernels/opencascade/OpenCascadeConversionResult.cpp +++ b/src/ifcgeom/kernels/opencascade/OpenCascadeConversionResult.cpp @@ -129,6 +129,11 @@ void ifcopenshell::geometry::OpenCascadeShape::Triangulate(ifcopenshell::geometr triangles(i).Get(n3, n2, n1); else triangles(i).Get(n1, n2, n3); + if (dict[n1] == dict[n2] || dict[n2] == dict[n3] || dict[n3] == dict[n1]) { + Logger::Warning("Mesher generated a degenerate triangle, ignoring"); + continue; + } + /* An alternative would be to calculate normals based * on the coordinates of the mesh vertices */ /*