diff --git a/Geo/CAD.cpp b/Geo/CAD.cpp index e536a04fe08679853f2e9a2bb6d994990f6234d6..18d24a96317f071b1e81b1ad8e8e2b743cdd78fa 100644 --- a/Geo/CAD.cpp +++ b/Geo/CAD.cpp @@ -1,4 +1,4 @@ -// $Id: CAD.cpp,v 1.77 2004-07-02 02:40:43 geuzaine Exp $ +// $Id: CAD.cpp,v 1.78 2004-08-12 16:55:00 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -1595,9 +1595,17 @@ int compareTwoCurves(const void *a, const void *b) c2 = *(Curve **) b; int comp; - if(c1->Typ != c2->Typ) - return c1->Typ - c2->Typ; - + if(c1->Typ != c2->Typ){ + if((c1->Typ == MSH_SEGM_CIRC && c2->Typ == MSH_SEGM_CIRC_INV) || + (c1->Typ == MSH_SEGM_CIRC_INV && c2->Typ == MSH_SEGM_CIRC) || + (c1->Typ == MSH_SEGM_ELLI && c2->Typ == MSH_SEGM_ELLI_INV) || + (c1->Typ == MSH_SEGM_ELLI_INV && c2->Typ == MSH_SEGM_ELLI)){ + // this is still ok + } + else + return c1->Typ - c2->Typ; + } + if(List_Nbr(c1->Control_Points) != List_Nbr(c2->Control_Points)) return List_Nbr(c1->Control_Points) - List_Nbr(c2->Control_Points);