From 70336f179dd674b51276d9901a2b497635f0a510 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 17 Jul 2024 03:12:35 +0200 Subject: [PATCH] Keep identities on indexed face sets #5020 --- src/ifcgeom/kernels/opencascade/faceset_helper.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ifcgeom/kernels/opencascade/faceset_helper.cpp b/src/ifcgeom/kernels/opencascade/faceset_helper.cpp index adc60798d2..fa7716abe5 100644 --- a/src/ifcgeom/kernels/opencascade/faceset_helper.cpp +++ b/src/ifcgeom/kernels/opencascade/faceset_helper.cpp @@ -35,13 +35,18 @@ IfcGeom::OpenCascadeKernel::faceset_helper::faceset_helper( // @todo use pointers? std::vector points; std::vector loops; + std::set point_identities_visited; for (auto& f : shell->children) { for (auto& l : f->children) { loops.push_back(l); for (auto& e : l->children) { // @todo make sure only cartesian points are provided here - points.push_back(boost::get(e->start)); + auto& p = boost::get(e->start); + if (point_identities_visited.find(p->identity()) == point_identities_visited.end()) { + point_identities_visited.insert(p->identity()); + points.push_back(p); + } } } }