From 183f2766c85a6b34cd3b1aea84e75b6bade8086b Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Mon, 2 Feb 2009 22:15:09 +0000 Subject: [PATCH] do parFromPoint only if it's reaaaalllly necessary + removed slow dynamic_cast --- Geo/MVertex.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/Geo/MVertex.cpp b/Geo/MVertex.cpp index 41770ebb2e..57eb825f3d 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; -- GitLab