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 */ /*