From 946e65b9c576b3b59eebc817efc0f77be9d9268f Mon Sep 17 00:00:00 2001 From: gka Date: Tue, 22 Nov 2016 16:20:36 +0300 Subject: [PATCH] 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. --- src/ShapeFix/ShapeFix_Edge.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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); }