1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-19 13:40:49 +03:00

0030250: Obtained shape is invalid due to presence of the loop containing two separate edges lying on the seam of the closed surface

Holes with null area is excluded from result in the ShapeFix_Face::FixMissingSeam in order to avoid cut by seam of the surface
This commit is contained in:
gka
2018-10-18 19:50:35 +03:00
parent 59515ca600
commit 4968cc7f07

View File

@@ -1707,6 +1707,11 @@ Standard_Boolean ShapeFix_Face::FixMissingSeam()
else if ( wire.IsSame ( w2 ) ) wire = w21;
else
{
Handle(ShapeAnalysis_Wire) anAnalyzer = new ShapeAnalysis_Wire(wire, myFace, Precision());
//To avoid addition of holes with null area (OCCT issue 0030250)
if (anAnalyzer->CheckSmallArea(wire))
continue;
// other wires (not boundary) are considered as holes; make sure to have them oriented accordingly
TopoDS_Shape curface = tmpF.EmptyCopied();
B.Add(curface,wire);