diff --git a/Geo/MVertex.cpp b/Geo/MVertex.cpp index 41770ebb2e58285c3d1188875c9a196ae6395e05..57eb825f3d62c14d60553e090f02feedf326ab11 100644 --- a/Geo/MVertex.cpp +++ b/Geo/MVertex.cpp @@ -357,20 +357,15 @@ bool reparamMeshVertexOnEdge(const MVertex *v, const GEdge *ge, double ¶m) { param = 1.e6; Range<double> bounds = ge->parBounds(0); - if(ge->getBeginVertex() && ge->getBeginVertex()->mesh_vertices[0] == v) + if(ge->getBeginVertex() && ge->getBeginVertex()->mesh_vertices[0] == v) param = bounds.low(); - else if(ge->getEndVertex() && ge->getEndVertex()->mesh_vertices[0] == v) + else if(ge->getEndVertex() && ge->getEndVertex()->mesh_vertices[0] == v) param = bounds.high(); else + v->getParameter(0, param); + + if(param == 1.e6) param = ge->parFromPoint(SPoint3(v->x(), v->y(), v->z())); - - if (v->onWhat() == ge) { - const MEdgeVertex* ve = dynamic_cast<const MEdgeVertex*>(v); - if (!ve) param = ge->parFromPoint(SPoint3(v->x(), v->y(), v->z())); - else v->getParameter(0, param); - } - else - param = ge->parFromPoint(SPoint3(v->x(), v->y(), v->z())); if(param < 1.e6) return true; return false;