From: eap Date: Fri, 30 Oct 2009 11:48:50 +0000 (+0000) Subject: 0020128: EDF SMESH 926 : Quadratic conversion of BLSURF mesh X-Git-Tag: V4_1_0_maintainance_FINAL~7 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=46318e8dbcc7129d7ce2f273dea64759d16af5c8;p=modules%2Fsmesh.git 0020128: EDF SMESH 926 : Quadratic conversion of BLSURF mesh fix GetNodeUV() for edges --- diff --git a/src/SMESH/SMESH_MesherHelper.cxx b/src/SMESH/SMESH_MesherHelper.cxx index 34e663815..0ca91a4d3 100644 --- a/src/SMESH/SMESH_MesherHelper.cxx +++ b/src/SMESH/SMESH_MesherHelper.cxx @@ -356,9 +356,12 @@ gp_XY SMESH_MesherHelper::GetNodeUV(const TopoDS_Face& F, static_cast(n->GetPosition().get()); int edgeID = Pos->GetShapeId(); TopoDS_Edge E = TopoDS::Edge(GetMeshDS()->IndexToShape(edgeID)); - double f, l; + double f, l, u = epos->GetUParameter(); Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l); - uv = C2d->Value( epos->GetUParameter() ); + if ( f < u && u < l ) + uv = C2d->Value( u ); + else + uv.SetCoord(0.,0.); uvOK = CheckNodeUV( F, n, uv.ChangeCoord(), BRep_Tool::Tolerance( E )); // for a node on a seam edge select one of UVs on 2 pcurves