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 &param)
 {
   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