diff --git a/Mesh/SecondOrder.cpp b/Mesh/SecondOrder.cpp index 4e7cff9e72f24372b4ed7568f0086dc7ac62263e..f4631c2fae4d6daa6d35ef104da0571a05589ae7 100644 --- a/Mesh/SecondOrder.cpp +++ b/Mesh/SecondOrder.cpp @@ -1,4 +1,4 @@ -// $Id: SecondOrder.cpp,v 1.27 2004-08-12 16:57:32 geuzaine Exp $ +// $Id: SecondOrder.cpp,v 1.28 2004-10-28 18:50:27 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -86,11 +86,17 @@ Vertex *onCurve(Vertex * v1, Vertex * v2) ok2 = 0; } + // Ugly fix for closed curves + if((THEC->beg->Num == THEC->end->Num) && + (u1 == THEC->ubeg || u1 == THEC->uend || + u2 == THEC->ubeg || u2 == THEC->uend)){ + ok1 = ok2 = 0; + } + if(ok1 && ok2){ v = InterpolateCurve(THEC, 0.5 * (u1 + u2), 0); } else{ - // too bad (should normally not happen) v.Pos.X = (v1->Pos.X + v2->Pos.X) * 0.5; v.Pos.Y = (v1->Pos.Y + v2->Pos.Y) * 0.5; v.Pos.Z = (v1->Pos.Z + v2->Pos.Z) * 0.5;