From 63e98e69e98235774b6ef58c9fe82b64e6ea236f Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 1 Nov 2024 11:15:09 +0100 Subject: [PATCH] Test whether polygonal boundary is simple #5665 --- src/ifcgeom/kernels/cgal/CgalKernel.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/ifcgeom/kernels/cgal/CgalKernel.cpp b/src/ifcgeom/kernels/cgal/CgalKernel.cpp index 15201666c7..4936d8d9cd 100644 --- a/src/ifcgeom/kernels/cgal/CgalKernel.cpp +++ b/src/ifcgeom/kernels/cgal/CgalKernel.cpp @@ -1930,6 +1930,17 @@ bool CgalKernel::convert_impl(const taxonomy::boolean_result::ptr br, Conversion if (!convert(face, fs) || fs.size() != 1) { return false; } + + auto& w = fs.front().outer; + CGAL::Polygon_2 ps; + for (auto& p : w) { + ps.push_back({ p.x(), p.y() }); + } + if (!ps.is_simple()) { + Logger::Warning("Polygonal boundary not simple", face->children[0]->instance); + continue; + } + // static auto z = taxonomy::make(0, 0, 1); cgal_shape_t poly;