diff --git a/Geo/CAD.cpp b/Geo/CAD.cpp index bd7f9b6a65dbb9253d7b90f29b6d43758e7f6ba1..c17f47a6f945342d242a47a851a02b363365fc95 100644 --- a/Geo/CAD.cpp +++ b/Geo/CAD.cpp @@ -1,4 +1,4 @@ -// $Id: CAD.cpp,v 1.17 2001-02-23 00:07:51 remacle Exp $ +// $Id: CAD.cpp,v 1.18 2001-04-07 07:20:22 geuzaine Exp $ #include "Gmsh.h" #include "Geo.h" @@ -1062,8 +1062,10 @@ void Extrude_ProtudeSurface(int ep, int is, List_Read(ps->s.Generatrices,i,&c2); List_Read(chapeau->s.Generatrices,i,&c); if(c->Num<0) - if(!(c = FindCurve(-c->Num,THEM))) - Msg(FATAL, "Unknown Curve %d", -c->Num); + if(!(c = FindCurve(-c->Num,THEM))){ + Msg(GERROR, "Unknown Curve %d", -c->Num); + return; + } c->Extrude = new ExtrudeParams(COPIED_ENTITY); c->Extrude->fill(ep,A,B,C,X,Y,Z,alpha); c->Extrude->geo.Source = abs(c2->Num); @@ -1318,14 +1320,20 @@ void ReplaceAllDuplicates ( Mesh *m ){ if(c->Num > 0){ if(!Tree_Search(allNonDulpicatedCurves,&c)){ Tree_Insert(allNonDulpicatedCurves,&c); - if(!(c2 = FindCurve(-c->Num,m))) - Msg(FATAL, "Unknown Curve %d", -c->Num); + if(!(c2 = FindCurve(-c->Num,m))){ + Msg(GERROR, "Unknown Curve %d", -c->Num); + List_Delete(All); + return; + } Tree_Insert(allNonDulpicatedCurves,&c2); } else{ Tree_Suppress(m->Curves,&c); - if(!(c2 = FindCurve(-c->Num,m))) - Msg(FATAL, "Unknown Curve %d", -c->Num); + if(!(c2 = FindCurve(-c->Num,m))){ + Msg(GERROR, "Unknown Curve %d", -c->Num); + List_Delete(All); + return; + } Tree_Suppress(m->Curves,&c2); } } @@ -1495,8 +1503,10 @@ void CopyShape(int Type, int Num, int *New){ switch(Type){ case MSH_POINT: - if(!(v = FindPoint(Num,THEM))) - Msg(FATAL, "Unknown Vertex %d", Num); + if(!(v = FindPoint(Num,THEM))){ + Msg(GERROR, "Unknown Vertex %d", Num); + return; + } newv = DuplicateVertex(v); *New = newv->Num; break; @@ -1505,8 +1515,10 @@ void CopyShape(int Type, int Num, int *New){ case MSH_SEGM_CIRC: case MSH_SEGM_ELLI: case MSH_SEGM_NURBS: - if(!(c = FindCurve(Num,THEM))) - Msg(FATAL, "Unknown Curve %d", Num); + if(!(c = FindCurve(Num,THEM))){ + Msg(GERROR, "Unknown Curve %d", Num); + return; + } newc = DuplicateCurve(c); *New = newc->Num; break; @@ -1514,8 +1526,10 @@ void CopyShape(int Type, int Num, int *New){ case MSH_SURF_TRIC: case MSH_SURF_REGL: case MSH_SURF_PLAN: - if(!(s = FindSurface(Num,THEM))) - Msg(FATAL, "Unknown Surface %d", Num); + if(!(s = FindSurface(Num,THEM))){ + Msg(GERROR, "Unknown Surface %d", Num); + return; + } news = DuplicateSurface(s,1); *New = news->Num; break; diff --git a/Geo/DataBase.cpp b/Geo/DataBase.cpp index faba62b26627fff66bede4c88d336b8816c003c2..65da00be9c519703286b9917eb575b481ca34321 100644 --- a/Geo/DataBase.cpp +++ b/Geo/DataBase.cpp @@ -1,4 +1,4 @@ -// $Id: DataBase.cpp,v 1.9 2001-03-23 14:41:52 geuzaine Exp $ +// $Id: DataBase.cpp,v 1.10 2001-04-07 07:20:22 geuzaine Exp $ #include "Gmsh.h" #include "Const.h" @@ -121,13 +121,21 @@ void AddQuadricSurfaceInDataBase (int Typ, int NumQuadric, double zaxis[3], s->s.Generatrices = List_Create(4, 1, sizeof(Curve*)); for(i=0;i<NbLoop;i++){ List_Read(loops,i,&iLoop); - if(!(el = FindEdgeLoop(iLoop,THEM))) - Msg(FATAL, "Unknown Loop %d", iLoop); + if(!(el = FindEdgeLoop(iLoop,THEM))){ + Msg(GERROR, "Unknown Loop %d", iLoop); + List_Delete(s->s.Generatrices); + Free(s); + return; + } else{ for(j=0;j<List_Nbr(el->Curves);j++){ List_Read(el->Curves,j,&ic); - if(!(c = FindCurve(ic,THEM))) - Msg(FATAL, "Unknown Curve %d", ic); + if(!(c = FindCurve(ic,THEM))){ + Msg(GERROR, "Unknown Curve %d", ic); + List_Delete(s->s.Generatrices); + Free(s); + return; + } else List_Add (s->s.Generatrices, &c); } @@ -155,13 +163,21 @@ void CreateSurfaceFromOldCrappyDatabase (int izon, int typzon, int o1, int o2, s->s.Generatrices = List_Create(4, 1, sizeof(Curve*)); for(i=0;i<NbLoop;i++){ List_Read(loops,i,&iLoop); - if(!(el = FindEdgeLoop(iLoop,THEM))) - Msg(FATAL, "Unknown Line Loop %d", iLoop); + if(!(el = FindEdgeLoop(iLoop,THEM))){ + Msg(GERROR, "Unknown Line Loop %d", iLoop); + List_Delete(s->s.Generatrices); + Free(s); + return; + } else{ for(j=0;j<List_Nbr(el->Curves);j++){ List_Read(el->Curves,j,&ic); - if(!(c = FindCurve(ic,THEM))) - Msg(FATAL, "Unknown Curve %d", ic); + if(!(c = FindCurve(ic,THEM))){ + Msg(GERROR, "Unknown Curve %d", ic); + List_Delete(s->s.Generatrices); + Free(s); + return; + } else List_Add (s->s.Generatrices, &c); } @@ -203,13 +219,21 @@ void CreateVolumeFromOldCrappyDatabase (int izon, List_T *loops, Mesh *M){ v->Surfaces = List_Create(4, 1, sizeof(Surface*)); for(i=0;i<List_Nbr(loops);i++){ List_Read(loops,i,&iLoop); - if(!(sl = FindSurfaceLoop(iLoop,THEM))) - Msg(FATAL, "Unknown Surface Loop %d", iLoop); + if(!(sl = FindSurfaceLoop(iLoop,THEM))){ + Msg(GERROR, "Unknown Surface Loop %d", iLoop); + List_Delete(v->Surfaces); + Free(v); + return; + } else{ for(j=0;j<List_Nbr(sl->Surfaces);j++){ List_Read(sl->Surfaces,j,&is); - if(!(s = FindSurface(abs(is),THEM))) - Msg(FATAL, "Unknown Surface %d", is); + if(!(s = FindSurface(abs(is),THEM))){ + Msg(GERROR, "Unknown Surface %d", is); + List_Delete(v->Surfaces); + Free(v); + return; + } else List_Add (v->Surfaces, &s); } @@ -317,8 +341,10 @@ void CreateNurbsSurfaceSupport (int Num , int Order1, int Order2 , Nv = List_Nbr(ListOfDouble_L); Cdbz101(Num,MSH_SURF_NURBS,Order1,Order2,Nv,Nu,0,ListCP,NULL,NULL); - if(!(s = FindSurface(Num,THEM))) - Msg(FATAL, "Unknown Surface Loop %d", Num); + if(!(s = FindSurface(Num,THEM))){ + Msg(GERROR, "Unknown Surface Loop %d", Num); + return; + } else{ s->ku = (float*)malloc(List_Nbr(ku)*sizeof(float)); s->kv = (float*)malloc(List_Nbr(kv)*sizeof(float)); @@ -389,8 +415,12 @@ void CreateNurbsSurface (int Num , int Order1 , int Order2 , List_T *List, else{ Loop[0] = NEWREG(); Cdbseg101(Loop[0],TypLine,Order1,ListOfDouble_L,NULL,-1,-1,kumin,kumax,NULL,NULL,NULL); - if(!(cc = FindCurve(Loop[0],THEM))) - Msg(FATAL, "Unknown Curve %d", Loop[0]); + if(!(cc = FindCurve(Loop[0],THEM))){ + Msg(GERROR, "Unknown Curve %d", Loop[0]); + List_Delete(Listint); + List_Delete(ListCP); + return; + } else{ cc->k = (float*)malloc(4*List_Nbr(ku)*sizeof(float)); for(i=0;i<List_Nbr(ku);i++){ @@ -412,8 +442,12 @@ void CreateNurbsSurface (int Num , int Order1 , int Order2 , List_T *List, else{ Loop[2] = NEWREG(); Cdbseg101(Loop[2],TypLine,Order1,ListOfDouble_L,NULL,-1,-1,kumin,kumax,NULL,NULL,NULL); - if(!(cc = FindCurve(Loop[2],THEM))) - Msg(FATAL, "Unknown Curve %d", Loop[2]); + if(!(cc = FindCurve(Loop[2],THEM))){ + Msg(GERROR, "Unknown Curve %d", Loop[2]); + List_Delete(Listint); + List_Delete(ListCP); + return; + } else{ cc->k = (float*)malloc(4*List_Nbr(ku)*sizeof(float)); for(i=0;i<List_Nbr(ku);i++){ @@ -443,8 +477,14 @@ void CreateNurbsSurface (int Num , int Order1 , int Order2 , List_T *List, else{ Loop[1] = NEWREG(); Cdbseg101(Loop[1],TypLine,Order2,List1,NULL,-1,-1,kvmin,kvmax,NULL,NULL,NULL); - if(!(cc = FindCurve(Loop[1],THEM))) - Msg(FATAL, "Unknown Curve %d", Loop[1]); + if(!(cc = FindCurve(Loop[1],THEM))){ + Msg(GERROR, "Unknown Curve %d", Loop[1]); + List_Delete(List1); + List_Delete(List2); + List_Delete(Listint); + List_Delete(ListCP); + return; + } else{ cc->k = (float*)malloc(4*List_Nbr(kv) * sizeof(float)); for(i=0;i<List_Nbr(kv);i++){ @@ -466,7 +506,7 @@ void CreateNurbsSurface (int Num , int Order1 , int Order2 , List_T *List, Loop[3] = NEWREG(); Cdbseg101(Loop[3],TypLine,Order2,List2,NULL,-1,-1,kvmin,kvmax,NULL,NULL,NULL); if(!(cc = FindCurve(Loop[3],THEM))) - Msg(FATAL, "Unknown Curve %d", Loop[3]); + Msg(GERROR, "Unknown Curve %d", Loop[3]); else{ cc->k = (float*)malloc(4*List_Nbr(kv)*sizeof(float)); for(i=0;i<List_Nbr(kv);i++){ diff --git a/Graphics/PostSimplex.cpp b/Graphics/PostSimplex.cpp index bd4f3770558cd90f7ddf387a21b060725c083d65..4b411261d5f88b2d68fded8ed2380aff33d428f2 100644 --- a/Graphics/PostSimplex.cpp +++ b/Graphics/PostSimplex.cpp @@ -1,4 +1,4 @@ -// $Id: PostSimplex.cpp,v 1.14 2001-04-06 10:26:36 geuzaine Exp $ +// $Id: PostSimplex.cpp,v 1.15 2001-04-07 07:20:22 geuzaine Exp $ #include "Gmsh.h" #include "GmshUI.h" @@ -27,7 +27,7 @@ void Draw_ScalarPoint(Post_View *View, Palette2(View,ValMin,ValMax,d); if(View->IntervalsType == DRAW_POST_NUMERIC){ glRasterPos3d(X[0],Y[0],Z[0]); - sprintf(Num, "%g", d); + sprintf(Num, View->Format, d); Draw_String(Num); } else @@ -108,7 +108,7 @@ void Draw_ScalarLine(Post_View *View, if(d >= ValMin && d <= ValMax){ RaiseFill(0, d, ValMin, Raise); Palette2(View,ValMin,ValMax,d); - sprintf(Num, "%g", d); + sprintf(Num, View->Format, d); glRasterPos3d((X[0] + X[1])/2., (Y[0] + Y[1])/2., (Z[0] + Z[1])/2.); @@ -242,7 +242,7 @@ void Draw_ScalarTriangle(Post_View *View, if(d >= ValMin && d <= ValMax){ RaiseFill(0, d, ValMin, Raise); Palette2(View,ValMin,ValMax,d); - sprintf(Num, "%g", d); + sprintf(Num, View->Format, d); glRasterPos3d((X[0] + X[1] + X[2])/3.+Raise[0][0], (Y[0] + Y[1] + Y[2])/3.+Raise[1][0], (Z[0] + Z[1] + Z[2])/3.+Raise[2][0]); @@ -445,13 +445,34 @@ void Draw_ScalarTetrahedron(Post_View *View, double *V){ int k; + double d; + char Num[100]; + + if(!preproNormals && View->IntervalsType == DRAW_POST_NUMERIC){ + + d = (V[4*View->TimeStep] +V[4*View->TimeStep+1]+ + V[4*View->TimeStep+2]+V[4*View->TimeStep+4]) / 4.; + if(d >= ValMin && d <= ValMax){ + RaiseFill(0, d, ValMin, Raise); + Palette2(View,ValMin,ValMax,d); + sprintf(Num, View->Format, d); + glRasterPos3d((X[0] + X[1] + X[2] + X[3])/4.+Raise[0][0], + (Y[0] + Y[1] + Y[2] + Y[3])/4.+Raise[1][0], + (Z[0] + Z[1] + Z[2] + Z[3])/4.+Raise[2][0]); + Draw_String(Num); + } + + } + else{ + + for(k=0 ; k<View->NbIso ; k++){ + if(!preproNormals)Palette(View,View->NbIso,k); + IsoSimplex(View,preproNormals, + X, Y, Z, &V[4*View->TimeStep], + View->GVFI(ValMin,ValMax,View->NbIso,k), + ValMin, ValMax, View->Offset, Raise, View->Light); + } - for(k=0 ; k<View->NbIso ; k++){ - if(!preproNormals)Palette(View,View->NbIso,k); - IsoSimplex(View,preproNormals, - X, Y, Z, &V[4*View->TimeStep], - View->GVFI(ValMin,ValMax,View->NbIso,k), - ValMin, ValMax, View->Offset, Raise, View->Light); } } diff --git a/Mesh/Create.cpp b/Mesh/Create.cpp index fa112c809c2d1b85dbda6fe68f049283f3f2aa13..345e1256e76965d031aa3b988c07ea5dd638606a 100644 --- a/Mesh/Create.cpp +++ b/Mesh/Create.cpp @@ -1,4 +1,4 @@ -// $Id: Create.cpp,v 1.10 2001-02-23 00:07:51 remacle Exp $ +// $Id: Create.cpp,v 1.11 2001-04-07 07:20:22 geuzaine Exp $ #include "Gmsh.h" #include "Const.h" @@ -474,7 +474,7 @@ Curve *Create_Curve (int Num, int Typ, int Order, List_T * Liste, if ((v = FindPoint (iPnt, THEM))) List_Add (pC->Control_Points, &v); else - Msg(FATAL, "Unknown Control Point %d in Curve %d", iPnt, pC->Num); + Msg(GERROR, "Unknown Control Point %d in Curve %d", iPnt, pC->Num); } } else {