From: gka Date: Tue, 22 Nov 2016 13:20:36 +0000 (+0300) Subject: 0028143: In the method ShapeFix_Edge::FixAddPCurve initialized by face location of... X-Git-Tag: V7_1_0~10 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=946e65b9c576b3b59eebc817efc0f77be9d9268f;p=occt-copy.git 0028143: In the method ShapeFix_Edge::FixAddPCurve initialized by face location of face is not taking into account. Class ShapeAnalysis::Surface is initialized by transformed surface in the method ShapeFix_Edge::FixAddPCurve (const TopoDS_Edge& edge,const TopoDS_Face& face, const Standard_Boolean isSeam, const Standard_Real prec) in the case when face has location. --- diff --git a/src/ShapeFix/ShapeFix_Edge.cxx b/src/ShapeFix/ShapeFix_Edge.cxx index 6a68768d00..d1222ab50c 100644 --- a/src/ShapeFix/ShapeFix_Edge.cxx +++ b/src/ShapeFix/ShapeFix_Edge.cxx @@ -153,7 +153,13 @@ Standard_Boolean ShapeFix_Edge::FixAddPCurve (const TopoDS_Edge& edge, const Standard_Boolean isSeam, const Standard_Real prec) { - Handle(ShapeAnalysis_Surface) sas = new ShapeAnalysis_Surface (surface); + Handle(Geom_Surface) aTransSurf = surface; + if( !location.IsIdentity()) + { + gp_Trsf aTrsf(location); + aTransSurf = Handle(Geom_Surface)::DownCast(surface->Transformed(aTrsf)); + } + Handle(ShapeAnalysis_Surface) sas = new ShapeAnalysis_Surface (aTransSurf); return FixAddPCurve (edge, surface, location, isSeam, sas, prec); }