From 46318e8dbcc7129d7ce2f273dea64759d16af5c8 Mon Sep 17 00:00:00 2001 From: eap Date: Fri, 30 Oct 2009 11:48:50 +0000 Subject: [PATCH] 0020128: EDF SMESH 926 : Quadratic conversion of BLSURF mesh fix GetNodeUV() for edges --- src/SMESH/SMESH_MesherHelper.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 -- 2.30.2