]> OCCT Git - occt-copy.git/commitdiff
0030250: Obtained shape is invalid due to presence of the loop containing two separat...
authorgka <gka@opencascade.com>
Wed, 17 Oct 2018 13:31:43 +0000 (16:31 +0300)
committergka <gka@opencascade.com>
Wed, 17 Oct 2018 13:36:17 +0000 (16:36 +0300)
In the class ShapeFix_Face::Perform FixSmallAreaWire() method call was inserted before method FixMissingSeam to remove hole having null area.

src/ShapeFix/ShapeFix_Face.cxx

index 9ebadf5504a65ec64b32814020ec9290f3b6645e..e5843ab6fe46578958e1648320c5791e2a7e121c 100644 (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 );
     }
   }