mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-19 06:39:13 +00:00
Don't do brute-force edge sewing in case of non-manifold faceset from wire intersections or triangulations
This commit is contained in:
@@ -501,7 +501,11 @@ bool IfcGeom::Kernel::create_solid_from_faces(const TopTools_ListOfShape& face_l
|
|||||||
bool has_shared_edges = false;
|
bool has_shared_edges = false;
|
||||||
TopTools_MapOfShape edge_set;
|
TopTools_MapOfShape edge_set;
|
||||||
|
|
||||||
if (!faceset_helper_ || !faceset_helper_->non_manifold()) {
|
// In case there are wire interesections or failures in non-planar wire triangulations
|
||||||
|
// the idea is to let occt do an exhaustive search of edge partners. But we have not
|
||||||
|
// found a case where this actually improves boolean ops later on.
|
||||||
|
// if (!faceset_helper_ || !faceset_helper_->non_manifold()) {
|
||||||
|
|
||||||
for (face_iterator.Initialize(face_list); face_iterator.More(); face_iterator.Next()) {
|
for (face_iterator.Initialize(face_list); face_iterator.More(); face_iterator.Next()) {
|
||||||
// As soon as is detected one of the edges is shared, the assumption is made no
|
// As soon as is detected one of the edges is shared, the assumption is made no
|
||||||
// additional sewing is necessary.
|
// additional sewing is necessary.
|
||||||
@@ -516,7 +520,6 @@ bool IfcGeom::Kernel::create_solid_from_faces(const TopTools_ListOfShape& face_l
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
BRepOffsetAPI_Sewing sewing_builder;
|
BRepOffsetAPI_Sewing sewing_builder;
|
||||||
sewing_builder.SetTolerance(getValue(GV_PRECISION));
|
sewing_builder.SetTolerance(getValue(GV_PRECISION));
|
||||||
|
|||||||
Reference in New Issue
Block a user