]> OCCT Git - occt-copy.git/commitdiff
0030120: Draw Harness - fixshape command does not heal missing 3D curves CR30120_tmp
authorkgv <kgv@opencascade.com>
Mon, 10 Sep 2018 13:13:42 +0000 (16:13 +0300)
committerkgv <kgv@opencascade.com>
Mon, 10 Sep 2018 13:13:42 +0000 (16:13 +0300)
src/SWDRAW/SWDRAW_ShapeFix.cxx

index 9ede795a609084721503a7c1f26f8da199648a50..b0088cb5d78ef6b343398cd960b9072bdf6a64c1 100644 (file)
@@ -401,11 +401,22 @@ static Standard_Integer reface (Draw_Interpretor& di, Standard_Integer argc, con
 //function : fixshape
 //purpose  : 
 //=======================================================================
-
+#include <ShapeFix_Edge.hxx>
 static Standard_Integer fixshape (Draw_Interpretor& di, Standard_Integer argc, const char** argv)
 {
+  TopoDS_Shape aShF =  DBRep::Get (argv[1]);
+  Handle(ShapeFix_Edge) anEdgeFixer = new ShapeFix_Edge();
+  for (TopExp_Explorer anEdgeIter (aShF, TopAbs_EDGE); anEdgeIter.More(); anEdgeIter.Next())
+  {
+    TopoDS_Edge anEdge = TopoDS::Edge (anEdgeIter.Current());
+    anEdgeFixer->FixAddCurve3d (anEdge);
+  }
+return 0;
+
   Handle(ShapeExtend_MsgRegistrator) msg = new ShapeExtend_MsgRegistrator;
   Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;
+sfs->FixWireTool()->FixAddCurve3dMode() = 1; ///
+sfs->FixFreeWireMode() = 1; ///
   sfs->SetMsgRegistrator ( msg );
   
   Standard_CString res = 0;