1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-08 14:17:06 +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.

In the class ShapeFix_Face::Perform FixSmallAreaWire() method call was inserted before method FixMissingSeam to remove hole having null area.
This commit is contained in:
gka
2018-10-17 16:31:43 +03:00
parent c3749171b7
commit 6916477205

View File

@@ -499,17 +499,25 @@ Standard_Boolean ShapeFix_Face::Perform()
}
}
myResult = myFace;
TopoDS_Shape savShape = myFace; //gka BUG 6555
// Specific case for conic surfaces
if ( NeedFix(myFixPeriodicDegenerated) )
this->FixPeriodicDegenerated();
// fix missing seam
if ( NeedFix ( myFixMissingSeamMode ) ) {
if ( NeedFix ( myFixSmallAreaWireMode ) )
{
if (FixSmallAreaWire(Standard_False))
myStatus |= ShapeExtend::EncodeStatus(ShapeExtend_DONE4);
}
myResult = myFace;
TopoDS_Shape savShape = myFace; //gka BUG 6555
// fix missing seam
if ( NeedFix ( myFixMissingSeamMode )) {
if ( FixMissingSeam() ) {
myStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE3 );
myStatus |= ShapeExtend::EncodeStatus( ShapeExtend_DONE3 );
}
}