From: SKL <> Date: Thu, 19 May 2011 11:01:14 +0000 (+0000) Subject: OCC22504 Regression in 6.5.0: Some faces are missing after reading IGES X-Git-Tag: V6_5_1~17 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=1c433dd8b651a5974650984e48bc251ec02579cf;p=occt-copy.git OCC22504 Regression in 6.5.0: Some faces are missing after reading IGES --- diff --git a/src/IGESToBRep/IGESToBRep_IGESBoundary.cxx b/src/IGESToBRep/IGESToBRep_IGESBoundary.cxx index de586516e9..f5976e71cc 100755 --- a/src/IGESToBRep/IGESToBRep_IGESBoundary.cxx +++ b/src/IGESToBRep/IGESToBRep_IGESBoundary.cxx @@ -17,6 +17,7 @@ #include #include #include +#include //======================================================================= //function : IGESToBRep_IGESBoundary @@ -260,9 +261,12 @@ IGESToBRep_IGESBoundary::IGESToBRep_IGESBoundary(const IGESToBRep_CurveAndSurfac // Orientation of each edge is not changed //======================================================================= - void IGESToBRep_IGESBoundary::ReverseCurves3d (const Handle(ShapeExtend_WireData)& sewd) +void IGESToBRep_IGESBoundary::ReverseCurves3d (const Handle(ShapeExtend_WireData)& sewd) { sewd->Reverse(); + BRep_Builder B; + TopoDS_Wire W; + B.MakeWire(W); for (Standard_Integer i = 1; i <= sewd->NbEdges(); i++) { TopoDS_Edge oldedge = sewd->Edge (i), newedge; TopLoc_Location L; @@ -276,8 +280,13 @@ IGESToBRep_IGESBoundary::IGESToBRep_IGESBoundary(const IGESToBRep_CurveAndSurfac Max (curve->ReversedParameter(curve->LastParameter()), curve->ReversedParameter (p2)), Min (curve->ReversedParameter(curve->FirstParameter()), curve->ReversedParameter (p1))); newedge.Orientation(TopAbs::Reverse (oldedge.Orientation())); - sewd->Set (newedge, i); + //sewd->Set (newedge, i); + B.Add(W,newedge); } + Handle(ShapeFix_Wire) sfw = new ShapeFix_Wire(); + sfw->Load(W); + sfw->FixConnected(); + sewd->Init(sfw->Wire()); } //=======================================================================