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); + } } } }