From bf8dfe5bc777cd9b83654785e23402ca70a1350f Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Sun, 20 Feb 2005 16:41:24 +0000 Subject: [PATCH] fixes for discrete curves/surfaces --- Mesh/SecondOrder.cpp | 68 +++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/Mesh/SecondOrder.cpp b/Mesh/SecondOrder.cpp index b98e09b941..72db983e46 100644 --- a/Mesh/SecondOrder.cpp +++ b/Mesh/SecondOrder.cpp @@ -1,4 +1,4 @@ -// $Id: SecondOrder.cpp,v 1.30 2005-02-20 06:36:54 geuzaine Exp $ +// $Id: SecondOrder.cpp,v 1.31 2005-02-20 16:41:24 geuzaine Exp $ // // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle // @@ -60,40 +60,42 @@ Vertex *onCurve(Vertex * v1, Vertex * v2) int ok1 = 1, ok2 = 1; double u1 = 0., u2 = 0.; - if(!THEC->beg || !THEC->end) + if(!THEC->beg || !THEC->end){ ok1 = ok2 = 0; - - if(List_Nbr(v1->ListCurves) == 1){ - u1 = v1->u; - } - else if(v1->Num == THEC->beg->Num){ - u1 = THEC->ubeg; - } - else if(v1->Num == THEC->end->Num){ - u1 = THEC->uend; - } - else{ - ok1 = 0; - } - - if(List_Nbr(v2->ListCurves) == 1){ - u2 = v2->u; - } - else if(v2->Num == THEC->beg->Num){ - u2 = THEC->ubeg; - } - else if(v2->Num == THEC->end->Num){ - u2 = THEC->uend; } else{ - ok2 = 0; - } + if(List_Nbr(v1->ListCurves) == 1){ + u1 = v1->u; + } + else if(v1->Num == THEC->beg->Num){ + u1 = THEC->ubeg; + } + else if(v1->Num == THEC->end->Num){ + u1 = THEC->uend; + } + else{ + ok1 = 0; + } + + if(List_Nbr(v2->ListCurves) == 1){ + u2 = v2->u; + } + else if(v2->Num == THEC->beg->Num){ + u2 = THEC->ubeg; + } + else if(v2->Num == THEC->end->Num){ + u2 = THEC->uend; + } + else{ + 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; + // 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){ @@ -122,7 +124,7 @@ Vertex *onSurface(Vertex * v1, Vertex * v2) if(!THES) return NULL; - if(THES->Typ == MSH_SURF_PLAN) + if(THES->Typ == MSH_SURF_PLAN || THES->Typ == MSH_SURF_DISCRETE) return NULL; XYZtoUV(THES, v1->Pos.X, v1->Pos.Y, v1->Pos.Z, &U1, &V1, 1.0); @@ -144,7 +146,7 @@ Vertex *onSurface(Vertex * v1, Vertex * v2, Vertex * v3, Vertex * v4) if(!THES) return NULL; - if(THES->Typ == MSH_SURF_PLAN) + if(THES->Typ == MSH_SURF_PLAN || THES->Typ == MSH_SURF_DISCRETE) return NULL; XYZtoUV(THES, v1->Pos.X, v1->Pos.Y, v1->Pos.Z, &U1, &V1, 1.0); -- GitLab