From 7bfd9a6fd226a86c4fe17f6462084ce6a23a9143 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Thu, 28 Oct 2004 18:50:27 +0000 Subject: [PATCH] Fixed bug in second order mesh of closed curves --- Mesh/SecondOrder.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Mesh/SecondOrder.cpp b/Mesh/SecondOrder.cpp index 4e7cff9e72..f4631c2fae 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; -- GitLab