diff --git a/Adapt/Adapt.cpp b/Adapt/Adapt.cpp index b4a8569e2462625019f891e68f8f3636ed042678..bf7224fec9d6783a1a32fc2fe662b05113e57f7c 100644 --- a/Adapt/Adapt.cpp +++ b/Adapt/Adapt.cpp @@ -1,4 +1,4 @@ -// $Id: Adapt.cpp,v 1.6 2001-04-08 20:36:49 geuzaine Exp $ +// $Id: Adapt.cpp,v 1.7 2001-04-26 17:58:00 remacle Exp $ #include "Gmsh.h" #include "Adapt.h" @@ -134,7 +134,7 @@ double AdaptMesh (int N, /* Number of elements */ } contr = fabs(minf); - Msg(INFO, "H-Refinement 1, Error %g=>%g, Objective %g, Reduction Factor %g->%g", + printf("H-Refinement 1, Error %g=>%g, Objective %g, Reduction Factor %g->%g", e0, sqrt(obj), -minf, minri, maxri); break; @@ -153,7 +153,7 @@ double AdaptMesh (int N, /* Number of elements */ } contr = sqrt(fabs(minf)); - Msg(INFO, "H-Refinement 2, Elements %g=>%g, Objective %g, Reduction Factor %g->%g", + printf( "H-Refinement 2, Elements %g=>%g, Objective %g, Reduction Factor %g->%g", e0, obj, 100. * sqrt(fabs(minf)), minri, maxri); break; @@ -175,7 +175,7 @@ double AdaptMesh (int N, /* Number of elements */ } contr = fabs(minf); - Msg(INFO, "P-Refinement, Error %g=%g=>%g, Objective %g", + printf("P-Refinement, Error %g=%g=>%g, Objective %g", e0, sqrt(obj), sqrt(obj2), minf); break; @@ -184,7 +184,7 @@ double AdaptMesh (int N, /* Number of elements */ break; default : - Msg(GERROR, "Unknown adaption method"); + printf("Unknown Adaption Method"); } return(contr) ; diff --git a/Common/Const.h b/Common/Const.h index 6bcaad118dd492a1cd1e35851792b674168e8099..ac006d4d321dd2cb591586c84da60185446bbc95 100644 --- a/Common/Const.h +++ b/Common/Const.h @@ -5,7 +5,7 @@ #define SELECTION_BUFFER_SIZE 1024 #define LABEL_STR_L 16 #define NAME_STR_L 256 -#define MAX_OPEN_FILES 20 +#define MAX_OPEN_FILES 256 #define RADTODEG 57.295779513082321 #define RacineDeDeux 1.4142135623730950 diff --git a/Graphics/Geom.cpp b/Graphics/Geom.cpp index c77aef75aecfaecee1bafad47e86c118dd2c49ba..46e39fae110d7562ab0ca91cf4590e0805d28406 100644 --- a/Graphics/Geom.cpp +++ b/Graphics/Geom.cpp @@ -1,4 +1,4 @@ -// $Id: Geom.cpp,v 1.17 2001-02-23 08:46:12 geuzaine Exp $ +// $Id: Geom.cpp,v 1.18 2001-04-26 17:58:00 remacle Exp $ #include "Gmsh.h" #include "GmshUI.h" @@ -10,6 +10,7 @@ #include "Interpolation.h" #include "Numeric.h" #include "Visibility.h" +#include "STL.h" extern Context_T CTX; extern Mesh *THEM; @@ -679,6 +680,11 @@ void Draw_Surface (void *a, void *b){ glDisable(GL_LINE_STIPPLE); Tree_Action(s->STL->Simplexes,Draw_Simplex_Surfaces); } + else if(s->Typ == MSH_SURF_DISCRETE) + { + glDisable(GL_LINE_STIPPLE); + Tree_Action(s->Simplexes,Draw_Simplex_Surfaces); + } else if(s->Typ == MSH_SURF_PLAN) Draw_Plane_Surface(s); else diff --git a/Graphics/Mesh.cpp b/Graphics/Mesh.cpp index ea43d7af86c0d40be87e5f84b0c9e7cdb291501e..9d4bbdf6810d98ec9ef771383978c83790753bff 100644 --- a/Graphics/Mesh.cpp +++ b/Graphics/Mesh.cpp @@ -1,4 +1,4 @@ -// $Id: Mesh.cpp,v 1.23 2001-04-22 18:13:02 geuzaine Exp $ +// $Id: Mesh.cpp,v 1.24 2001-04-26 17:58:00 remacle Exp $ #include "Gmsh.h" #include "GmshUI.h" @@ -287,7 +287,7 @@ void Draw_Simplex_Volume (void *a, void *b){ gl2psDisable(GL2PS_LINE_STIPPLE); } -#if 0 /* never here for the moment */ +#if 1 /* never here for the moment */ double n[4], x1x0, y1y0, z1z0, x2x0, y2y0, z2z0; @@ -295,9 +295,9 @@ void Draw_Simplex_Volume (void *a, void *b){ if (CTX.mesh.hidden) { - x1x0 = X[1]-X[0]; y1y0 = Y[1]-Y[0]; - z1z0 = Z[1]-Z[0]; x2x0 = X[2]-X[0]; - y2y0 = Y[2]-Y[0]; z2z0 = Z[2]-Z[0]; + x1x0 = X[2]-X[0]; y1y0 = Y[2]-Y[0]; + z1z0 = Z[2]-Z[0]; x2x0 = X[1]-X[0]; + y2y0 = Y[1]-Y[0]; z2z0 = Z[1]-Z[0]; n[0] = y1y0 * z2z0 - z1z0 * y2y0 ; n[1] = z1z0 * x2x0 - x1x0 * z2z0 ; n[2] = x1x0 * y2y0 - y1y0 * x2x0; @@ -305,8 +305,8 @@ void Draw_Simplex_Volume (void *a, void *b){ glBegin(GL_TRIANGLES); glVertex3d(X[0], Y[0], Z[0]); - glVertex3d(X[1], Y[1], Z[1]); glVertex3d(X[2], Y[2], Z[2]); + glVertex3d(X[1], Y[1], Z[1]); glEnd(); x1x0 = X[1]-X[0]; y1y0 = Y[1]-Y[0]; @@ -334,8 +334,8 @@ void Draw_Simplex_Volume (void *a, void *b){ glBegin(GL_TRIANGLES); glVertex3d(X[0], Y[0], Z[0]); - glVertex3d(X[2], Y[2], Z[2]); glVertex3d(X[3], Y[3], Z[3]); + glVertex3d(X[2], Y[2], Z[2]); glEnd(); x1x0 = X[3]-X[1]; y1y0 = Y[3]-Y[1]; diff --git a/Makefile b/Makefile index 3616692436c124cf1adeeeaa20c6ea797fa5551a..fb131d579982adc76be12d785c02ef3fe2b3664c 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.93 2001-04-23 10:38:04 geuzaine Exp $ +# $Id: Makefile,v 1.94 2001-04-26 17:58:00 remacle Exp $ # ---------------------------------------------------------------------- # Makefile for Gmsh # ---------------------------------------------------------------------- @@ -184,7 +184,7 @@ tag: echo "#define GMSH_VERSION $(GMSH_RELEASE)" > Common/GmshVersion.h echo "#define GMSH_DATE \"`date`\"" >> Common/GmshVersion.h echo "#define GMSH_HOST \"`hostname`\"" >> Common/GmshVersion.h - echo "#define GMSH_PACKAGER \"`whoami`\"" >> Common/GmshVersion.h + echo "#define GMSH_PACKAGER \"`hostname`\"" >> Common/GmshVersion.h echo "#define GMSH_OS \"`uname -sr`\"" >> Common/GmshVersion.h initialtag: @@ -408,6 +408,7 @@ fltk_compile_solaris_scorec : "CC=$(CC)" \ "C_FLAGS=-O3" \ "VERSION_FLAGS=-D_FLTK" \ + "OS_FLAGS=" \ "GL_INCLUDE=$(OPENGL_INC)" \ "GUI_INCLUDE=$(FLTK_INC_SCOREC)" \ ); done diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp index 4d3e984b412ec81bd62be6eab64a1a1467fc6653..3965383be8ad5254c710aef948283c722d1fb374 100644 --- a/Mesh/Generator.cpp +++ b/Mesh/Generator.cpp @@ -1,4 +1,4 @@ -// $Id: Generator.cpp,v 1.14 2001-04-17 06:55:47 geuzaine Exp $ +// $Id: Generator.cpp,v 1.15 2001-04-26 17:58:00 remacle Exp $ #include "Gmsh.h" #include "Const.h" @@ -120,7 +120,7 @@ void Maillage_Dimension_3 (Mesh * M){ void Init_Mesh (Mesh * M, int all){ THEM = M; - + if (M->Vertices){ Tree_Action (M->Vertices, Free_Vertex); Tree_Delete (M->Vertices); @@ -133,6 +133,7 @@ void Init_Mesh (Mesh * M, int all){ Tree_Action (M->Simplexes, Free_Simplex); Tree_Delete (M->Simplexes); } + if (M->Points){ //Tree_Action (M->Points, Free_Vertex); Tree_Delete (M->Points); @@ -164,7 +165,7 @@ void Init_Mesh (Mesh * M, int all){ if (M->Metric){ Free (M->Metric); } - + M->Vertices = Tree_Create (sizeof (Vertex *), compareVertex); M->VertexEdges = Tree_Create (sizeof (Vertex *), compareVertex); M->Simplexes = Tree_Create (sizeof (Simplex *), compareSimplex); @@ -177,7 +178,6 @@ void Init_Mesh (Mesh * M, int all){ M->PhysicalGroups = List_Create (5, 5, sizeof (PhysicalGroup *)); M->Metric = new GMSHMetric; M->BGM.bgm = NULL; - CurrentNodeNumber = 1; CurrentSimplexNumber = 0; M->status = 0; @@ -243,7 +243,5 @@ void mai3d (Mesh * M, int Asked){ Msg(STATUS2, "Mesh 3D complete (%g s)", t2 - t1); M->status = 3; } - CTX.threads_lock = 0 ; - } diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h index 47d1f48c9ae02db00ad252c4a470ce34e95acbab..e0b9a30851ad004409f7ef310039cac65da17843 100644 --- a/Mesh/Mesh.h +++ b/Mesh/Mesh.h @@ -60,6 +60,7 @@ typedef struct _MAILLAGE maillage, *maipeek; typedef struct _MAICON maillage_c; typedef struct _DELAUNAY Delaunay, *delpeek; typedef int PointNumero; +class STL_Data; struct _DOC{ PointRecord *points; /* points a trianguler */ @@ -195,26 +196,6 @@ typedef struct{ double center[3]; }CylParam; -class STL_Data{ - public: - Tree_T * Vertices; - Tree_T *Simplexes; - List_T *LVertices; - List_T *LSimplexes; - void Add_Facet (double x1, double y1, double z1, - double x2, double y2, double z2, - double x3, double y3, double z3); - int GetNbFacets (){ - return Tree_Nbr (Simplexes); - } - int GetNbVertices (){ - return Tree_Nbr (Vertices); - } - void GetFacet (int iFac, int &v1, int &v2, int &v3); - void GetVertex (int iVertex, double &x, double &y, double &z); - STL_Data (); - ~STL_Data (); -}; struct _Surf{ int Num; diff --git a/Mesh/Print_Mesh.cpp b/Mesh/Print_Mesh.cpp index 06873c6149964e1ceed7e6c96f31b5071228c216..a33f4f32cc0ef8c5e984023231ffd3ea948f9451 100644 --- a/Mesh/Print_Mesh.cpp +++ b/Mesh/Print_Mesh.cpp @@ -1,4 +1,4 @@ -// $Id: Print_Mesh.cpp,v 1.18 2001-04-08 20:36:50 geuzaine Exp $ +// $Id: Print_Mesh.cpp,v 1.19 2001-04-26 17:58:00 remacle Exp $ #include "Gmsh.h" #include "Const.h" @@ -1085,7 +1085,7 @@ void Print_Mesh (Mesh * M, char *c, int Type){ ELEMENT_ID = 1; process_3D_elements (unvfile, M); process_2D_elements (unvfile, M); - process_1D_elements (unvfile, M); + // process_1D_elements (unvfile, M); fprintf (unvfile, "%6d\n", -1); PrintGroups (M); fclose (unvfile); diff --git a/Mesh/Read_Mesh.cpp b/Mesh/Read_Mesh.cpp index 3696ab8dae3b23c9b4756d7970d8f3e95f07bec7..f911e4688b35d0debb1155cf8fbd4a5cb0df52df 100644 --- a/Mesh/Read_Mesh.cpp +++ b/Mesh/Read_Mesh.cpp @@ -1,4 +1,4 @@ -// $Id: Read_Mesh.cpp,v 1.11 2001-04-17 06:55:47 geuzaine Exp $ +// $Id: Read_Mesh.cpp,v 1.12 2001-04-26 17:58:00 remacle Exp $ #include "Gmsh.h" #include "Geo.h" @@ -209,7 +209,6 @@ void Read_Mesh_MSH (Mesh *M, FILE *File_GEO){ M->status = 0 ; else M->status = -1 ; - } /* ------------------------------------------------------------------------ */ @@ -219,10 +218,11 @@ void Read_Mesh_SMS (Mesh *m, FILE *File_GEO); void Read_Mesh (Mesh *M, FILE *File_GEO, int type){ + double s[50]; switch(type){ case FORMAT_MSH : Read_Mesh_MSH(M,File_GEO); break; case FORMAT_SMS : Read_Mesh_SMS(M,File_GEO); break; default : Msg(WARNING, "Unkown mesh file format to read"); break; } - + GetStatistics(s); } diff --git a/Mesh/SMS.cpp b/Mesh/SMS.cpp index f8c872a5b0ee40a775c817f84bbe14383a362b4f..4920968f3299af76cfc1ad1681608ee13544a735 100644 --- a/Mesh/SMS.cpp +++ b/Mesh/SMS.cpp @@ -191,17 +191,17 @@ void Read_Mesh_SMS (Mesh *m, FILE *in) case ENTITY_EDGE : Simplex *s = Create_Simplex(v1,v2,NULL,NULL); Curve *c; - if((c = FindCurve(GEntityId+1000,m))) + if((c = FindCurve(GEntityId,m))) { } else { - c = Create_Curve(GEntityId+1000,MSH_SEGM_DISCRETE,1,NULL,NULL,-1,-1,0,1); + c = Create_Curve(GEntityId,MSH_SEGM_DISCRETE,1,NULL,NULL,-1,-1,0,1); c->beg = v1; c->end = v2; Tree_Add(m->Curves,&c); } - s->iEnt = GEntityId+1000; + s->iEnt = GEntityId; // List_Add(v1->ListCurves,&c); // List_Add(v2->ListCurves,&c); Tree_Add(c->Simplexes,&s); @@ -286,7 +286,7 @@ void Read_Mesh_SMS (Mesh *m, FILE *in) Simplex *s = Create_Simplex (v1,v2,v3,v4); // s->curvedBounds(Edge1,Edge2,Edge3,Edge4,Lists,m->VertexEdges); s->Num = i+1; - s->iEnt = GEntityId + 10000; + s->iEnt = GEntityId+10000; Surface *surf; List_Add(AllFaces,&s); @@ -364,7 +364,7 @@ void Read_Mesh_SMS (Mesh *m, FILE *in) if(NbRegions)m->status = 3; else if(NbFaces)m->status = 2; - else if(NbEdges)m->status = 1; + else if(NbEdges)m->status = 1; Msg(INFO,"Done."); } /* diff --git a/Mesh/STL.cpp b/Mesh/STL.cpp index 78301a535fe6ba1e46980c738eb65c58bd93a79a..80870de30b89531adab194b4c231d255e594a36a 100644 --- a/Mesh/STL.cpp +++ b/Mesh/STL.cpp @@ -1,7 +1,8 @@ -// $Id: STL.cpp,v 1.4 2001-01-08 08:05:46 geuzaine Exp $ +// $Id: STL.cpp,v 1.5 2001-04-26 17:58:00 remacle Exp $ #include "Gmsh.h" #include "Mesh.h" +#include "STL.h" extern Mesh *THEM; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 27f46ebc8e9702b64448dd9fc8e7936f8c105198..7be96aca807b17c116ec5daf8ef641c12011f2f7 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -169,7 +169,7 @@ #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.85 2001-04-20 08:52:24 geuzaine Exp $ +// $Id: Gmsh.tab.cpp,v 1.86 2001-04-26 17:58:00 remacle Exp $ #include <stdarg.h> @@ -192,6 +192,7 @@ #include "ColorTable.h" #include "Timer.h" #include "CreateFile.h" +#include "STL.h" #ifdef __DECCXX // bug in bison #include <alloca.h> @@ -231,7 +232,7 @@ void yyerror (char *s); void vyyerror (char *fmt, ...); void skip_until (char *skip, char *until); -#line 66 "Gmsh.y" +#line 67 "Gmsh.y" typedef union { char *c; int i; @@ -565,40 +566,40 @@ static const short yyrhs[] = { 185, #if YYDEBUG != 0 static const short yyrline[] = { 0, - 149, 151, 152, 153, 160, 162, 165, 173, 187, 199, - 201, 204, 206, 207, 210, 216, 221, 222, 223, 226, - 230, 233, 239, 244, 250, 258, 263, 267, 273, 278, - 282, 287, 291, 294, 299, 303, 307, 311, 316, 320, - 323, 327, 331, 335, 339, 343, 347, 350, 354, 357, - 361, 364, 373, 377, 383, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 398, 403, 432, 438, - 445, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 464, 467, 471, 477, 483, 486, 490, - 496, 502, 505, 509, 515, 521, 524, 528, 536, 542, - 545, 549, 557, 563, 566, 570, 578, 584, 587, 591, - 603, 609, 612, 616, 628, 634, 637, 641, 653, 659, - 662, 666, 679, 685, 688, 692, 705, 711, 714, 718, - 731, 743, 745, 746, 747, 748, 750, 752, 754, 785, - 819, 866, 881, 890, 905, 917, 931, 954, 978, 990, - 1004, 1016, 1030, 1046, 1068, 1079, 1085, 1104, 1115, 1123, - 1129, 1135, 1154, 1160, 1176, 1183, 1189, 1195, 1201, 1207, - 1226, 1238, 1244, 1263, 1284, 1292, 1298, 1304, 1310, 1322, - 1328, 1334, 1346, 1352, 1357, 1362, 1369, 1371, 1372, 1375, - 1380, 1391, 1409, 1417, 1422, 1433, 1488, 1508, 1512, 1532, - 1548, 1562, 1587, 1612, 1638, 1644, 1649, 1654, 1658, 1668, - 1674, 1680, 1684, 1688, 1692, 1696, 1701, 1708, 1712, 1717, - 1738, 1748, 1767, 1785, 1803, 1825, 1846, 1867, 1885, 1910, - 1915, 1926, 1928, 1929, 1930, 1931, 1934, 1936, 1937, 1938, - 1939, 1940, 1941, 1942, 1943, 1950, 1951, 1952, 1953, 1954, - 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, - 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, - 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1986, 1991, 1995, - 2006, 2023, 2034, 2053, 2069, 2085, 2101, 2118, 2125, 2138, - 2143, 2147, 2151, 2155, 2160, 2165, 2169, 2173, 2179, 2183, - 2188, 2192, 2197, 2201, 2205, 2211, 2217, 2224, 2229, 2233, - 2243, 2249, 2253, 2267, 2283, 2303, 2327, 2332, 2336, 2343, - 2354, 2367, 2384, 2405, 2410, 2414, 2419, 2424, 2442, 2447, - 2460, 2466, 2472, 2477, 2481 + 150, 152, 153, 154, 161, 163, 166, 174, 188, 200, + 202, 205, 207, 208, 211, 217, 222, 223, 224, 227, + 231, 234, 240, 245, 251, 259, 264, 268, 274, 279, + 283, 288, 292, 295, 300, 304, 308, 312, 317, 321, + 324, 328, 332, 336, 340, 344, 348, 351, 355, 358, + 362, 365, 374, 378, 384, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 399, 404, 433, 439, + 446, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 465, 468, 472, 478, 484, 487, 491, + 497, 503, 506, 510, 516, 522, 525, 529, 537, 543, + 546, 550, 558, 564, 567, 571, 579, 585, 588, 592, + 604, 610, 613, 617, 629, 635, 638, 642, 654, 660, + 663, 667, 680, 686, 689, 693, 706, 712, 715, 719, + 732, 744, 746, 747, 748, 749, 751, 753, 755, 786, + 820, 867, 882, 891, 906, 918, 932, 955, 979, 991, + 1005, 1017, 1031, 1047, 1069, 1080, 1086, 1105, 1116, 1124, + 1130, 1136, 1155, 1161, 1177, 1184, 1190, 1196, 1202, 1208, + 1227, 1239, 1245, 1264, 1285, 1293, 1299, 1305, 1311, 1323, + 1329, 1335, 1347, 1353, 1358, 1363, 1370, 1372, 1373, 1376, + 1381, 1392, 1410, 1418, 1423, 1434, 1496, 1516, 1520, 1540, + 1556, 1570, 1595, 1620, 1646, 1652, 1657, 1662, 1666, 1676, + 1682, 1688, 1692, 1696, 1700, 1704, 1709, 1716, 1720, 1725, + 1746, 1756, 1775, 1793, 1811, 1833, 1854, 1875, 1893, 1918, + 1923, 1934, 1936, 1937, 1938, 1939, 1942, 1944, 1945, 1946, + 1947, 1948, 1949, 1950, 1951, 1958, 1959, 1960, 1961, 1962, + 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, + 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, + 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1994, 1999, 2003, + 2014, 2031, 2042, 2061, 2077, 2093, 2109, 2126, 2133, 2146, + 2151, 2155, 2159, 2163, 2168, 2173, 2177, 2181, 2187, 2191, + 2196, 2200, 2205, 2209, 2213, 2219, 2225, 2232, 2237, 2241, + 2251, 2257, 2261, 2275, 2291, 2311, 2335, 2340, 2344, 2351, + 2362, 2375, 2392, 2413, 2418, 2422, 2427, 2432, 2450, 2455, + 2468, 2474, 2480, 2485, 2489 }; #endif @@ -2970,19 +2971,19 @@ yyreduce: switch (yyn) { case 4: -#line 153 "Gmsh.y" +#line 154 "Gmsh.y" { yyerrok ; return 1; ; break;} case 5: -#line 161 "Gmsh.y" +#line 162 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 6: -#line 162 "Gmsh.y" +#line 163 "Gmsh.y" { yyval.d = -yyvsp[0].d; ; break;} case 7: -#line 167 "Gmsh.y" +#line 168 "Gmsh.y" { Msg(PARSER_INFO,"STL file format"); STL_Surf = Create_Surface(1,MSH_SURF_STL,1); @@ -2991,7 +2992,7 @@ case 7: ; break;} case 8: -#line 181 "Gmsh.y" +#line 182 "Gmsh.y" { STL_Surf->STL->Add_Facet( yyvsp[-12].d, yyvsp[-11].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-7].d, yyvsp[-6].d, @@ -3000,7 +3001,7 @@ case 8: ; break;} case 9: -#line 188 "Gmsh.y" +#line 189 "Gmsh.y" { Msg(PARSER_INFO,"STL file format read"); Tree_Add(THEM->Surfaces, &STL_Surf); @@ -3008,79 +3009,79 @@ case 9: ; break;} case 12: -#line 205 "Gmsh.y" +#line 206 "Gmsh.y" { return 1; ; break;} case 13: -#line 206 "Gmsh.y" +#line 207 "Gmsh.y" { return 1; ; break;} case 14: -#line 207 "Gmsh.y" +#line 208 "Gmsh.y" { return 1; ; break;} case 15: -#line 212 "Gmsh.y" +#line 213 "Gmsh.y" { Msg(PARSER_INFO,"Step Iso-10303-21 file format"); Create_Step_Solid_BRep(); ; break;} case 16: -#line 217 "Gmsh.y" +#line 218 "Gmsh.y" { Msg(PARSER_INFO,"Step Iso-10303-21 file format read"); Resolve_BREP (); ; break;} case 20: -#line 228 "Gmsh.y" +#line 229 "Gmsh.y" { ; break;} case 21: -#line 231 "Gmsh.y" +#line 232 "Gmsh.y" { ; break;} case 22: -#line 235 "Gmsh.y" +#line 236 "Gmsh.y" { ; break;} case 23: -#line 241 "Gmsh.y" +#line 242 "Gmsh.y" { Add_Cartesian_Point((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2]); ; break;} case 24: -#line 247 "Gmsh.y" +#line 248 "Gmsh.y" { Add_BSpline_Curve_With_Knots ((int)yyvsp[-22].d, yyvsp[-18].c, (int) yyvsp[-16].d, yyvsp[-14].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1.); ; break;} case 25: -#line 254 "Gmsh.y" +#line 255 "Gmsh.y" { Add_BSpline_Surface_With_Knots ((int)yyvsp[-30].d, yyvsp[-26].c, (int) yyvsp[-24].d, (int) yyvsp[-22].d, yyvsp[-20].l, yyvsp[-10].l, yyvsp[-8].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1., 0., 1. ); ; break;} case 26: -#line 260 "Gmsh.y" +#line 261 "Gmsh.y" { Add_Edge_Curve ((int)yyvsp[-14].d, yyvsp[-10].c , (int)yyvsp[-8].d , (int)yyvsp[-6].d, (int)yyvsp[-4].d); ; break;} case 27: -#line 264 "Gmsh.y" +#line 265 "Gmsh.y" { Add_Face_Outer_Bound((int)yyvsp[-10].d,yyvsp[-6].c,(int)yyvsp[-4].d,yyvsp[-2].i,1); ; break;} case 28: -#line 268 "Gmsh.y" +#line 269 "Gmsh.y" { /* La je dois voir la norme ! Face_Bound : trou externe a la surface ! */ Msg(PARSER_INFO,"Found a face bound"); @@ -3088,207 +3089,207 @@ case 28: ; break;} case 29: -#line 275 "Gmsh.y" +#line 276 "Gmsh.y" { Add_Oriented_Edge((int)yyvsp[-14].d,yyvsp[-10].c,(int)yyvsp[-4].d,yyvsp[-2].i); ; break;} case 30: -#line 279 "Gmsh.y" +#line 280 "Gmsh.y" { Add_Edge_Loop((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].l); ; break;} case 31: -#line 284 "Gmsh.y" +#line 285 "Gmsh.y" { Add_Advanced_Face((int)yyvsp[-12].d,yyvsp[-8].c,yyvsp[-6].l,(int)yyvsp[-4].d,yyvsp[-2].i); ; break;} case 32: -#line 288 "Gmsh.y" +#line 289 "Gmsh.y" { Add_Vertex_Point((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d); ; break;} case 33: -#line 292 "Gmsh.y" +#line 293 "Gmsh.y" { ; break;} case 34: -#line 296 "Gmsh.y" +#line 297 "Gmsh.y" { Add_Axis2_Placement3D ( (int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d); ; break;} case 35: -#line 300 "Gmsh.y" +#line 301 "Gmsh.y" { Add_Direction((int)yyvsp[-8].d , yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]); ; break;} case 36: -#line 304 "Gmsh.y" +#line 305 "Gmsh.y" { Add_Plane((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d); ; break;} case 37: -#line 308 "Gmsh.y" +#line 309 "Gmsh.y" { Add_Line ((int)yyvsp[-10].d, yyvsp[-6].c , (int) yyvsp[-4].d, (int)yyvsp[-2].d); ; break;} case 38: -#line 312 "Gmsh.y" +#line 313 "Gmsh.y" { Msg(PARSER_INFO,"Found a closed shell"); Add_Closed_Shell((int)yyvsp[-8].d, yyvsp[-4].c , yyvsp[-2].l); ; break;} case 39: -#line 318 "Gmsh.y" +#line 319 "Gmsh.y" { ; break;} case 40: -#line 321 "Gmsh.y" +#line 322 "Gmsh.y" { ; break;} case 41: -#line 324 "Gmsh.y" +#line 325 "Gmsh.y" { Add_Cylinder ((int)yyvsp[-10].d, yyvsp[-6].c , (int)yyvsp[-4].d, yyvsp[-2].d); ; break;} case 42: -#line 328 "Gmsh.y" +#line 329 "Gmsh.y" { Add_Cone ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d); ; break;} case 43: -#line 332 "Gmsh.y" +#line 333 "Gmsh.y" { Add_Torus ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d); ; break;} case 44: -#line 336 "Gmsh.y" +#line 337 "Gmsh.y" { Add_Circle((int) yyvsp[-10].d, yyvsp[-6].c, (int) yyvsp[-4].d, yyvsp[-2].d); ; break;} case 45: -#line 340 "Gmsh.y" +#line 341 "Gmsh.y" { Add_Ellipsis((int) yyvsp[-12].d, yyvsp[-8].c, (int) yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); ; break;} case 46: -#line 345 "Gmsh.y" +#line 346 "Gmsh.y" { ; break;} case 47: -#line 348 "Gmsh.y" +#line 349 "Gmsh.y" { ; break;} case 48: -#line 352 "Gmsh.y" +#line 353 "Gmsh.y" { ; break;} case 49: -#line 355 "Gmsh.y" +#line 356 "Gmsh.y" { ; break;} case 50: -#line 359 "Gmsh.y" +#line 360 "Gmsh.y" { ; break;} case 51: -#line 362 "Gmsh.y" +#line 363 "Gmsh.y" { ; break;} case 52: -#line 365 "Gmsh.y" +#line 366 "Gmsh.y" { ; break;} case 53: -#line 375 "Gmsh.y" +#line 376 "Gmsh.y" { ; break;} case 54: -#line 378 "Gmsh.y" +#line 379 "Gmsh.y" { Msg(PARSER_INFO,"Gmsh file format read"); ; break;} case 55: -#line 384 "Gmsh.y" +#line 385 "Gmsh.y" { return 1; ; break;} case 56: -#line 385 "Gmsh.y" +#line 386 "Gmsh.y" { return 1; ; break;} case 57: -#line 386 "Gmsh.y" +#line 387 "Gmsh.y" { return 1; ; break;} case 58: -#line 387 "Gmsh.y" +#line 388 "Gmsh.y" { return 1; ; break;} case 59: -#line 388 "Gmsh.y" +#line 389 "Gmsh.y" { return 1; ; break;} case 60: -#line 389 "Gmsh.y" +#line 390 "Gmsh.y" { return 1; ; break;} case 61: -#line 390 "Gmsh.y" +#line 391 "Gmsh.y" { return 1; ; break;} case 62: -#line 391 "Gmsh.y" +#line 392 "Gmsh.y" { return 1; ; break;} case 63: -#line 392 "Gmsh.y" +#line 393 "Gmsh.y" { return 1; ; break;} case 64: -#line 393 "Gmsh.y" +#line 394 "Gmsh.y" { return 1; ; break;} case 65: -#line 394 "Gmsh.y" +#line 395 "Gmsh.y" { return 1; ; break;} case 66: -#line 395 "Gmsh.y" +#line 396 "Gmsh.y" { return 1; ; break;} case 67: -#line 400 "Gmsh.y" +#line 401 "Gmsh.y" { Msg(DIRECT, yyvsp[-2].c); ; break;} case 68: -#line 404 "Gmsh.y" +#line 405 "Gmsh.y" { for(i = 0 ; i<List_Nbr(yyvsp[-2].l) ; i++){ if(!i){ @@ -3313,98 +3314,98 @@ case 68: ; break;} case 69: -#line 434 "Gmsh.y" +#line 435 "Gmsh.y" { if(!strcmp(yyvsp[-5].c, "View")) EndView(1, yyname, yyvsp[-4].c); ; break;} case 70: -#line 439 "Gmsh.y" +#line 440 "Gmsh.y" { if(!strcmp(yyvsp[-7].c, "View")) EndView(1, yyname, yyvsp[-6].c); ; break;} case 71: -#line 447 "Gmsh.y" +#line 448 "Gmsh.y" { BeginView(1); ; break;} case 84: -#line 466 "Gmsh.y" +#line 467 "Gmsh.y" { List_Add(ActualView->SP, &yyvsp[0].d) ; ; break;} case 85: -#line 468 "Gmsh.y" +#line 469 "Gmsh.y" { List_Add(ActualView->SP, &yyvsp[0].d) ; ; break;} case 86: -#line 473 "Gmsh.y" +#line 474 "Gmsh.y" { List_Add(ActualView->SP, &yyvsp[-5].d); List_Add(ActualView->SP, &yyvsp[-3].d); List_Add(ActualView->SP, &yyvsp[-1].d); ; break;} case 87: -#line 478 "Gmsh.y" +#line 479 "Gmsh.y" { ActualView->NbSP++ ; ; break;} case 88: -#line 485 "Gmsh.y" +#line 486 "Gmsh.y" { List_Add(ActualView->VP, &yyvsp[0].d) ; ; break;} case 89: -#line 487 "Gmsh.y" +#line 488 "Gmsh.y" { List_Add(ActualView->VP, &yyvsp[0].d) ; ; break;} case 90: -#line 492 "Gmsh.y" +#line 493 "Gmsh.y" { List_Add(ActualView->VP, &yyvsp[-5].d); List_Add(ActualView->VP, &yyvsp[-3].d); List_Add(ActualView->VP, &yyvsp[-1].d); ; break;} case 91: -#line 497 "Gmsh.y" +#line 498 "Gmsh.y" { ActualView->NbVP++ ; ; break;} case 92: -#line 504 "Gmsh.y" +#line 505 "Gmsh.y" { List_Add(ActualView->TP, &yyvsp[0].d) ; ; break;} case 93: -#line 506 "Gmsh.y" +#line 507 "Gmsh.y" { List_Add(ActualView->TP, &yyvsp[0].d) ; ; break;} case 94: -#line 511 "Gmsh.y" +#line 512 "Gmsh.y" { List_Add(ActualView->TP, &yyvsp[-5].d); List_Add(ActualView->TP, &yyvsp[-3].d); List_Add(ActualView->TP, &yyvsp[-1].d); ; break;} case 95: -#line 516 "Gmsh.y" +#line 517 "Gmsh.y" { ActualView->NbTP++ ; ; break;} case 96: -#line 523 "Gmsh.y" +#line 524 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[0].d) ; ; break;} case 97: -#line 525 "Gmsh.y" +#line 526 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[0].d) ; ; break;} case 98: -#line 531 "Gmsh.y" +#line 532 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[-11].d); List_Add(ActualView->SL, &yyvsp[-5].d); List_Add(ActualView->SL, &yyvsp[-9].d); List_Add(ActualView->SL, &yyvsp[-3].d); @@ -3412,21 +3413,21 @@ case 98: ; break;} case 99: -#line 537 "Gmsh.y" +#line 538 "Gmsh.y" { ActualView->NbSL++ ; ; break;} case 100: -#line 544 "Gmsh.y" +#line 545 "Gmsh.y" { List_Add(ActualView->VL, &yyvsp[0].d) ; ; break;} case 101: -#line 546 "Gmsh.y" +#line 547 "Gmsh.y" { List_Add(ActualView->VL, &yyvsp[0].d) ; ; break;} case 102: -#line 552 "Gmsh.y" +#line 553 "Gmsh.y" { List_Add(ActualView->VL, &yyvsp[-11].d); List_Add(ActualView->VL, &yyvsp[-5].d); List_Add(ActualView->VL, &yyvsp[-9].d); List_Add(ActualView->VL, &yyvsp[-3].d); @@ -3434,21 +3435,21 @@ case 102: ; break;} case 103: -#line 558 "Gmsh.y" +#line 559 "Gmsh.y" { ActualView->NbVL++ ; ; break;} case 104: -#line 565 "Gmsh.y" +#line 566 "Gmsh.y" { List_Add(ActualView->TL, &yyvsp[0].d) ; ; break;} case 105: -#line 567 "Gmsh.y" +#line 568 "Gmsh.y" { List_Add(ActualView->TL, &yyvsp[0].d) ; ; break;} case 106: -#line 573 "Gmsh.y" +#line 574 "Gmsh.y" { List_Add(ActualView->TL, &yyvsp[-11].d); List_Add(ActualView->TL, &yyvsp[-5].d); List_Add(ActualView->TL, &yyvsp[-9].d); List_Add(ActualView->TL, &yyvsp[-3].d); @@ -3456,21 +3457,21 @@ case 106: ; break;} case 107: -#line 579 "Gmsh.y" +#line 580 "Gmsh.y" { ActualView->NbTL++ ; ; break;} case 108: -#line 586 "Gmsh.y" +#line 587 "Gmsh.y" { List_Add(ActualView->ST, &yyvsp[0].d) ; ; break;} case 109: -#line 588 "Gmsh.y" +#line 589 "Gmsh.y" { List_Add(ActualView->ST, &yyvsp[0].d) ; ; break;} case 110: -#line 595 "Gmsh.y" +#line 596 "Gmsh.y" { List_Add(ActualView->ST, &yyvsp[-17].d); List_Add(ActualView->ST, &yyvsp[-11].d); List_Add(ActualView->ST, &yyvsp[-5].d); @@ -3481,21 +3482,21 @@ case 110: ; break;} case 111: -#line 604 "Gmsh.y" +#line 605 "Gmsh.y" { ActualView->NbST++ ; ; break;} case 112: -#line 611 "Gmsh.y" +#line 612 "Gmsh.y" { List_Add(ActualView->VT, &yyvsp[0].d) ; ; break;} case 113: -#line 613 "Gmsh.y" +#line 614 "Gmsh.y" { List_Add(ActualView->VT, &yyvsp[0].d) ; ; break;} case 114: -#line 620 "Gmsh.y" +#line 621 "Gmsh.y" { List_Add(ActualView->VT, &yyvsp[-17].d); List_Add(ActualView->VT, &yyvsp[-11].d); List_Add(ActualView->VT, &yyvsp[-5].d); @@ -3506,21 +3507,21 @@ case 114: ; break;} case 115: -#line 629 "Gmsh.y" +#line 630 "Gmsh.y" { ActualView->NbVT++ ; ; break;} case 116: -#line 636 "Gmsh.y" +#line 637 "Gmsh.y" { List_Add(ActualView->TT, &yyvsp[0].d) ; ; break;} case 117: -#line 638 "Gmsh.y" +#line 639 "Gmsh.y" { List_Add(ActualView->TT, &yyvsp[0].d) ; ; break;} case 118: -#line 645 "Gmsh.y" +#line 646 "Gmsh.y" { List_Add(ActualView->TT, &yyvsp[-17].d); List_Add(ActualView->TT, &yyvsp[-11].d); List_Add(ActualView->TT, &yyvsp[-5].d); @@ -3531,21 +3532,21 @@ case 118: ; break;} case 119: -#line 654 "Gmsh.y" +#line 655 "Gmsh.y" { ActualView->NbTT++ ; ; break;} case 120: -#line 661 "Gmsh.y" +#line 662 "Gmsh.y" { List_Add(ActualView->SS, &yyvsp[0].d) ; ; break;} case 121: -#line 663 "Gmsh.y" +#line 664 "Gmsh.y" { List_Add(ActualView->SS, &yyvsp[0].d) ; ; break;} case 122: -#line 671 "Gmsh.y" +#line 672 "Gmsh.y" { List_Add(ActualView->SS, &yyvsp[-23].d); List_Add(ActualView->SS, &yyvsp[-17].d); List_Add(ActualView->SS, &yyvsp[-11].d); List_Add(ActualView->SS, &yyvsp[-5].d); @@ -3556,21 +3557,21 @@ case 122: ; break;} case 123: -#line 680 "Gmsh.y" +#line 681 "Gmsh.y" { ActualView->NbSS++ ; ; break;} case 124: -#line 687 "Gmsh.y" +#line 688 "Gmsh.y" { List_Add(ActualView->VS, &yyvsp[0].d) ; ; break;} case 125: -#line 689 "Gmsh.y" +#line 690 "Gmsh.y" { List_Add(ActualView->VS, &yyvsp[0].d) ; ; break;} case 126: -#line 697 "Gmsh.y" +#line 698 "Gmsh.y" { List_Add(ActualView->VS, &yyvsp[-23].d); List_Add(ActualView->VS, &yyvsp[-17].d); List_Add(ActualView->VS, &yyvsp[-11].d); List_Add(ActualView->VS, &yyvsp[-5].d); @@ -3581,21 +3582,21 @@ case 126: ; break;} case 127: -#line 706 "Gmsh.y" +#line 707 "Gmsh.y" { ActualView->NbVS++ ; ; break;} case 128: -#line 713 "Gmsh.y" +#line 714 "Gmsh.y" { List_Add(ActualView->TS, &yyvsp[0].d) ; ; break;} case 129: -#line 715 "Gmsh.y" +#line 716 "Gmsh.y" { List_Add(ActualView->TS, &yyvsp[0].d) ; ; break;} case 130: -#line 723 "Gmsh.y" +#line 724 "Gmsh.y" { List_Add(ActualView->TS, &yyvsp[-23].d); List_Add(ActualView->TS, &yyvsp[-17].d); List_Add(ActualView->TS, &yyvsp[-11].d); List_Add(ActualView->TS, &yyvsp[-5].d); @@ -3606,41 +3607,41 @@ case 130: ; break;} case 131: -#line 732 "Gmsh.y" +#line 733 "Gmsh.y" { ActualView->NbTS++ ; ; break;} case 132: -#line 744 "Gmsh.y" +#line 745 "Gmsh.y" { yyval.i = 0 ; ; break;} case 133: -#line 745 "Gmsh.y" +#line 746 "Gmsh.y" { yyval.i = 1 ; ; break;} case 134: -#line 746 "Gmsh.y" +#line 747 "Gmsh.y" { yyval.i = 2 ; ; break;} case 135: -#line 747 "Gmsh.y" +#line 748 "Gmsh.y" { yyval.i = 3 ; ; break;} case 136: -#line 748 "Gmsh.y" +#line 749 "Gmsh.y" { yyval.i = 4 ; ; break;} case 137: -#line 751 "Gmsh.y" +#line 752 "Gmsh.y" { yyval.i = 1 ; ; break;} case 138: -#line 752 "Gmsh.y" +#line 753 "Gmsh.y" { yyval.i = -1 ; ; break;} case 139: -#line 759 "Gmsh.y" +#line 760 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){ @@ -3668,7 +3669,7 @@ case 139: ; break;} case 140: -#line 786 "Gmsh.y" +#line 787 "Gmsh.y" { TheSymbol.Name = yyvsp[-6].c; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){ @@ -3703,7 +3704,7 @@ case 140: ; break;} case 141: -#line 820 "Gmsh.y" +#line 821 "Gmsh.y" { if(List_Nbr(yyvsp[-5].l) != List_Nbr(yyvsp[-1].l)) vyyerror("Incompatible array dimensions in affectation"); @@ -3751,7 +3752,7 @@ case 141: ; break;} case 142: -#line 867 "Gmsh.y" +#line 868 "Gmsh.y" { TheSymbol.Name = yyvsp[-5].c; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){ @@ -3767,7 +3768,7 @@ case 142: ; break;} case 143: -#line 882 "Gmsh.y" +#line 883 "Gmsh.y" { TheSymbol.Name = yyvsp[-2].c; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3777,7 +3778,7 @@ case 143: ; break;} case 144: -#line 891 "Gmsh.y" +#line 892 "Gmsh.y" { TheSymbol.Name = yyvsp[-5].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3791,7 +3792,7 @@ case 144: ; break;} case 145: -#line 906 "Gmsh.y" +#line 907 "Gmsh.y" { if(!(pStrCat = Get_StringOptionCategory(yyvsp[-5].c))) vyyerror("Unknown string option class '%s'", yyvsp[-5].c); @@ -3804,7 +3805,7 @@ case 145: ; break;} case 146: -#line 918 "Gmsh.y" +#line 919 "Gmsh.y" { if(!(pStrCat = Get_StringOptionCategory(yyvsp[-8].c))) vyyerror("Unknown string option class '%s'", yyvsp[-8].c); @@ -3817,7 +3818,7 @@ case 146: ; break;} case 147: -#line 932 "Gmsh.y" +#line 933 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) vyyerror("Unknown numeric option class '%s'", yyvsp[-5].c); @@ -3841,7 +3842,7 @@ case 147: ; break;} case 148: -#line 955 "Gmsh.y" +#line 956 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-8].c))) vyyerror("Unknown numeric option class '%s'", yyvsp[-8].c); @@ -3866,7 +3867,7 @@ case 148: ; break;} case 149: -#line 979 "Gmsh.y" +#line 980 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c))) vyyerror("Unknown numeric option class '%s'", yyvsp[-4].c); @@ -3879,7 +3880,7 @@ case 149: ; break;} case 150: -#line 991 "Gmsh.y" +#line 992 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-7].c))) vyyerror("Unknown numeric option class '%s'", yyvsp[-7].c); @@ -3892,7 +3893,7 @@ case 150: ; break;} case 151: -#line 1005 "Gmsh.y" +#line 1006 "Gmsh.y" { if(!(pColCat = Get_ColorOptionCategory(yyvsp[-7].c))) vyyerror("Unknown color option class '%s'", yyvsp[-7].c); @@ -3905,7 +3906,7 @@ case 151: ; break;} case 152: -#line 1017 "Gmsh.y" +#line 1018 "Gmsh.y" { if(!(pColCat = Get_ColorOptionCategory(yyvsp[-10].c))) vyyerror("Unknown color option class '%s'", yyvsp[-10].c); @@ -3918,7 +3919,7 @@ case 152: ; break;} case 153: -#line 1031 "Gmsh.y" +#line 1032 "Gmsh.y" { ColorTable *ct = Get_ColorTable(0); if(!ct) @@ -3935,7 +3936,7 @@ case 153: ; break;} case 154: -#line 1047 "Gmsh.y" +#line 1048 "Gmsh.y" { ColorTable *ct = Get_ColorTable((int)yyvsp[-6].d); if(!ct) @@ -3952,7 +3953,7 @@ case 154: ; break;} case 155: -#line 1073 "Gmsh.y" +#line 1074 "Gmsh.y" { Cdbpts101((int)yyvsp[-4].d,yyvsp[-1].v[0],yyvsp[-1].v[1],yyvsp[-1].v[2],yyvsp[-1].v[3],yyvsp[-1].v[4]); yyval.s.Type = MSH_POINT; @@ -3960,7 +3961,7 @@ case 155: ; break;} case 156: -#line 1080 "Gmsh.y" +#line 1081 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_POINT,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_PHYSICAL_POINT; @@ -3968,7 +3969,7 @@ case 156: ; break;} case 157: -#line 1086 "Gmsh.y" +#line 1087 "Gmsh.y" { Vertex *v; Attractor *a; @@ -3989,7 +3990,7 @@ case 157: ; break;} case 158: -#line 1105 "Gmsh.y" +#line 1106 "Gmsh.y" { for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ List_Read(yyvsp[-3].l,i,&d); @@ -4002,14 +4003,14 @@ case 158: ; break;} case 159: -#line 1116 "Gmsh.y" +#line 1117 "Gmsh.y" { yyval.s.Type = MSH_POINT; yyval.s.Num = (int)yyvsp[-2].d; ; break;} case 160: -#line 1124 "Gmsh.y" +#line 1125 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_LINE,1,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); yyval.s.Type = MSH_SEGM_LINE; @@ -4017,7 +4018,7 @@ case 160: ; break;} case 161: -#line 1130 "Gmsh.y" +#line 1131 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_SPLN,3,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); yyval.s.Type = MSH_SEGM_SPLN; @@ -4025,7 +4026,7 @@ case 161: ; break;} case 162: -#line 1136 "Gmsh.y" +#line 1137 "Gmsh.y" { Curve *c; Attractor *a; @@ -4046,7 +4047,7 @@ case 162: ; break;} case 163: -#line 1155 "Gmsh.y" +#line 1156 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_CIRC,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); yyval.s.Type = MSH_SEGM_CIRC ; @@ -4054,7 +4055,7 @@ case 163: ; break;} case 164: -#line 1161 "Gmsh.y" +#line 1162 "Gmsh.y" { List_T *temp; int i,j; @@ -4072,7 +4073,7 @@ case 164: ; break;} case 165: -#line 1178 "Gmsh.y" +#line 1179 "Gmsh.y" { Cdbseg101((int)yyvsp[-14].d,MSH_SEGM_PARAMETRIC,2,NULL,NULL,-1,-1,yyvsp[-10].d,yyvsp[-8].d,yyvsp[-6].c,yyvsp[-4].c,yyvsp[-2].c); yyval.s.Type = MSH_SEGM_PARAMETRIC ; @@ -4080,7 +4081,7 @@ case 165: ; break;} case 166: -#line 1184 "Gmsh.y" +#line 1185 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_ELLI,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); yyval.s.Type = MSH_SEGM_ELLI ; @@ -4088,7 +4089,7 @@ case 166: ; break;} case 167: -#line 1190 "Gmsh.y" +#line 1191 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_LINE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_PHYSICAL_LINE; @@ -4096,7 +4097,7 @@ case 167: ; break;} case 168: -#line 1196 "Gmsh.y" +#line 1197 "Gmsh.y" { yyval.s.Type = MSH_SEGM_LOOP; Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); @@ -4104,7 +4105,7 @@ case 168: ; break;} case 169: -#line 1202 "Gmsh.y" +#line 1203 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_BSPLN,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); yyval.s.Type = MSH_SEGM_BSPLN; @@ -4112,7 +4113,7 @@ case 169: ; break;} case 170: -#line 1208 "Gmsh.y" +#line 1209 "Gmsh.y" { List_T *Temp; int i; @@ -4133,7 +4134,7 @@ case 170: ; break;} case 171: -#line 1227 "Gmsh.y" +#line 1228 "Gmsh.y" { yyval.s.Num = (int)yyvsp[-2].d; Curve *c = FindCurve(yyval.s.Num,THEM); @@ -4144,7 +4145,7 @@ case 171: ; break;} case 172: -#line 1239 "Gmsh.y" +#line 1240 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_SURF_PLAN; @@ -4152,7 +4153,7 @@ case 172: ; break;} case 173: -#line 1245 "Gmsh.y" +#line 1246 "Gmsh.y" { Surface *s,*support; support = FindSurface((int)yyvsp[-4].d,THEM); @@ -4173,7 +4174,7 @@ case 173: ; break;} case 174: -#line 1264 "Gmsh.y" +#line 1265 "Gmsh.y" { List_Read(yyvsp[-1].l,0,&d); i = (int)d; @@ -4196,7 +4197,7 @@ case 174: ; break;} case 175: -#line 1287 "Gmsh.y" +#line 1288 "Gmsh.y" { CreateNurbsSurface ( (int) yyvsp[-16].d , (int)yyvsp[-4].d , (int)yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l); yyval.s.Type = MSH_SURF_NURBS; @@ -4204,13 +4205,13 @@ case 175: ; break;} case 176: -#line 1295 "Gmsh.y" +#line 1296 "Gmsh.y" { CreateNurbsSurfaceSupport ((int)yyvsp[-16].d, (int) yyvsp[-4].d , (int) yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l); ; break;} case 177: -#line 1299 "Gmsh.y" +#line 1300 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_SURFACE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_PHYSICAL_SURFACE; @@ -4218,7 +4219,7 @@ case 177: ; break;} case 178: -#line 1305 "Gmsh.y" +#line 1306 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_SURF_LOOP,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_SURF_LOOP; @@ -4226,7 +4227,7 @@ case 178: ; break;} case 179: -#line 1311 "Gmsh.y" +#line 1312 "Gmsh.y" { yyval.s.Num = (int)yyvsp[-2].d; Surface *s = FindSurface(yyval.s.Num,THEM); @@ -4237,7 +4238,7 @@ case 179: ; break;} case 180: -#line 1323 "Gmsh.y" +#line 1324 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_VOLUME; @@ -4245,7 +4246,7 @@ case 180: ; break;} case 181: -#line 1329 "Gmsh.y" +#line 1330 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_VOLUME; @@ -4253,7 +4254,7 @@ case 181: ; break;} case 182: -#line 1335 "Gmsh.y" +#line 1336 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_PHYSICAL_VOLUME; @@ -4261,60 +4262,60 @@ case 182: ; break;} case 183: -#line 1348 "Gmsh.y" +#line 1349 "Gmsh.y" { TranslateShapes (yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-1].l,1); yyval.l = yyvsp[-1].l; ; break;} case 184: -#line 1353 "Gmsh.y" +#line 1354 "Gmsh.y" { RotateShapes(yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l); yyval.l = yyvsp[-1].l; ; break;} case 185: -#line 1358 "Gmsh.y" +#line 1359 "Gmsh.y" { SymmetryShapes(yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-3].v[3],yyvsp[-1].l,1); yyval.l = yyvsp[-1].l; ; break;} case 186: -#line 1363 "Gmsh.y" +#line 1364 "Gmsh.y" { DilatShapes(yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l,1); yyval.l = yyvsp[-1].l; ; break;} case 187: -#line 1370 "Gmsh.y" +#line 1371 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 188: -#line 1371 "Gmsh.y" +#line 1372 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 189: -#line 1372 "Gmsh.y" +#line 1373 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 190: -#line 1377 "Gmsh.y" +#line 1378 "Gmsh.y" { yyval.l = List_Create(3,3,sizeof(Shape)); ; break;} case 191: -#line 1381 "Gmsh.y" +#line 1382 "Gmsh.y" { List_Add(yyval.l,&yyvsp[0].s); yyval.l = yyvsp[-1].l; ; break;} case 192: -#line 1393 "Gmsh.y" +#line 1394 "Gmsh.y" { yyval.l = List_Create(3,3,sizeof(Shape)); for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ @@ -4326,7 +4327,7 @@ case 192: ; break;} case 193: -#line 1411 "Gmsh.y" +#line 1412 "Gmsh.y" { for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ List_Read (yyvsp[-1].l,i,&TheShape); @@ -4335,20 +4336,20 @@ case 193: ; break;} case 194: -#line 1418 "Gmsh.y" +#line 1419 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) FreeView((int)yyvsp[-2].d); ; break;} case 195: -#line 1423 "Gmsh.y" +#line 1424 "Gmsh.y" { Init_Mesh(THEM, 1); ; break;} case 196: -#line 1435 "Gmsh.y" +#line 1436 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Include")){ @@ -4392,6 +4393,13 @@ case 196: MergeProblem(yyvsp[-1].c); yyin = ff; + } + else if(!strcmp(yyvsp[-2].c, "Open")){ + + FILE *ff = yyin; + OpenProblem(yyvsp[-1].c); + yyin = ff; + } else if(!strcmp(yyvsp[-2].c, "System")){ @@ -4404,7 +4412,7 @@ case 196: ; break;} case 197: -#line 1489 "Gmsh.y" +#line 1497 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Sleep")){ @@ -4426,13 +4434,13 @@ case 197: ; break;} case 198: -#line 1509 "Gmsh.y" +#line 1517 "Gmsh.y" { exit(0); ; break;} case 199: -#line 1513 "Gmsh.y" +#line 1521 "Gmsh.y" { if(!CTX.batch){ // we're in interactive mode if(Tree_Nbr(THEM->Points) != Last_NumberOfPoints){ @@ -4448,7 +4456,7 @@ case 199: ; break;} case 200: -#line 1535 "Gmsh.y" +#line 1543 "Gmsh.y" { FILE* ff; if(RecursionLevel) @@ -4464,7 +4472,7 @@ case 200: ; break;} case 201: -#line 1549 "Gmsh.y" +#line 1557 "Gmsh.y" { FILE* ff; if(RecursionLevel) @@ -4480,7 +4488,7 @@ case 201: ; break;} case 202: -#line 1563 "Gmsh.y" +#line 1571 "Gmsh.y" { FILE* ff; if(RecursionLevel) @@ -4507,7 +4515,7 @@ case 202: ; break;} case 203: -#line 1588 "Gmsh.y" +#line 1596 "Gmsh.y" { FILE* ff; if(RecursionLevel) @@ -4534,7 +4542,7 @@ case 203: ; break;} case 204: -#line 1613 "Gmsh.y" +#line 1621 "Gmsh.y" { if(LoopControlVariablesTab[ImbricatedLoop-1][1] > LoopControlVariablesTab[ImbricatedLoop-1][0]){ @@ -4562,7 +4570,7 @@ case 204: ; break;} case 205: -#line 1639 "Gmsh.y" +#line 1647 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction(yyvsp[0].c,yyin,yylineno)) vyyerror("Redefinition of function %s",yyvsp[0].c); @@ -4570,39 +4578,39 @@ case 205: ; break;} case 206: -#line 1645 "Gmsh.y" +#line 1653 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction(&yyin,yylineno)) vyyerror("Error while exiting function"); ; break;} case 207: -#line 1650 "Gmsh.y" +#line 1658 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c,&yyin,yylineno)) vyyerror("Unknown function %s",yyvsp[-1].c); ; break;} case 208: -#line 1655 "Gmsh.y" +#line 1663 "Gmsh.y" { if(!yyvsp[-1].d) skip_until("If", "EndIf"); ; break;} case 209: -#line 1659 "Gmsh.y" +#line 1667 "Gmsh.y" { ; break;} case 210: -#line 1670 "Gmsh.y" +#line 1678 "Gmsh.y" { Curve *pc, *prc; Extrude_ProtudePoint(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,&pc,&prc,NULL); ; break;} case 211: -#line 1675 "Gmsh.y" +#line 1683 "Gmsh.y" { Curve *pc, *prc; Extrude_ProtudePoint(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d, @@ -4610,55 +4618,55 @@ case 211: ; break;} case 212: -#line 1681 "Gmsh.y" +#line 1689 "Gmsh.y" { Extrude_ProtudeCurve(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,NULL); ; break;} case 213: -#line 1685 "Gmsh.y" +#line 1693 "Gmsh.y" { Extrude_ProtudeCurve(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,NULL); ; break;} case 214: -#line 1689 "Gmsh.y" +#line 1697 "Gmsh.y" { Extrude_ProtudeSurface(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,0,NULL); ; break;} case 215: -#line 1693 "Gmsh.y" +#line 1701 "Gmsh.y" { Extrude_ProtudeSurface(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL); ; break;} case 216: -#line 1697 "Gmsh.y" +#line 1705 "Gmsh.y" { int vol = NEWREG(); Extrude_ProtudeSurface(1,(int)yyvsp[-7].d,yyvsp[-5].v[0],yyvsp[-5].v[1],yyvsp[-5].v[2],0.,0.,0.,0.,vol,&extr); ; break;} case 217: -#line 1702 "Gmsh.y" +#line 1710 "Gmsh.y" { int vol = NEWREG(); Extrude_ProtudeSurface(0,(int)yyvsp[-11].d,yyvsp[-9].v[0],yyvsp[-9].v[1],yyvsp[-9].v[2],yyvsp[-7].v[0],yyvsp[-7].v[1],yyvsp[-7].v[2],yyvsp[-5].d,vol,&extr); ; break;} case 218: -#line 1710 "Gmsh.y" +#line 1718 "Gmsh.y" { ; break;} case 219: -#line 1713 "Gmsh.y" +#line 1721 "Gmsh.y" { ; break;} case 220: -#line 1719 "Gmsh.y" +#line 1727 "Gmsh.y" { double d; int j; @@ -4680,13 +4688,13 @@ case 220: ; break;} case 221: -#line 1739 "Gmsh.y" +#line 1747 "Gmsh.y" { extr.mesh.Recombine = true; ; break;} case 222: -#line 1750 "Gmsh.y" +#line 1758 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ @@ -4706,7 +4714,7 @@ case 222: ; break;} case 223: -#line 1768 "Gmsh.y" +#line 1776 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ @@ -4726,7 +4734,7 @@ case 223: ; break;} case 224: -#line 1786 "Gmsh.y" +#line 1794 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ @@ -4746,7 +4754,7 @@ case 224: ; break;} case 225: -#line 1804 "Gmsh.y" +#line 1812 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d,THEM); if(!s) @@ -4770,7 +4778,7 @@ case 225: ; break;} case 226: -#line 1826 "Gmsh.y" +#line 1834 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d,THEM); if(!s) @@ -4793,7 +4801,7 @@ case 226: ; break;} case 227: -#line 1847 "Gmsh.y" +#line 1855 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d,THEM); if(!v) @@ -4816,7 +4824,7 @@ case 227: ; break;} case 228: -#line 1868 "Gmsh.y" +#line 1876 "Gmsh.y" { Surface *s; for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ @@ -4836,7 +4844,7 @@ case 228: ; break;} case 229: -#line 1886 "Gmsh.y" +#line 1894 "Gmsh.y" { Surface *s; for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ @@ -4856,71 +4864,71 @@ case 229: ; break;} case 230: -#line 1912 "Gmsh.y" +#line 1920 "Gmsh.y" { Coherence_PS(); ; break;} case 231: -#line 1916 "Gmsh.y" +#line 1924 "Gmsh.y" { IntersectAllSegmentsTogether(); ; break;} case 232: -#line 1927 "Gmsh.y" +#line 1935 "Gmsh.y" {yyval.i = 1;; break;} case 233: -#line 1928 "Gmsh.y" +#line 1936 "Gmsh.y" {yyval.i = 0;; break;} case 234: -#line 1929 "Gmsh.y" +#line 1937 "Gmsh.y" {yyval.i = -1;; break;} case 235: -#line 1930 "Gmsh.y" +#line 1938 "Gmsh.y" {yyval.i = -1;; break;} case 236: -#line 1931 "Gmsh.y" +#line 1939 "Gmsh.y" {yyval.i = -1;; break;} case 237: -#line 1935 "Gmsh.y" +#line 1943 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 238: -#line 1936 "Gmsh.y" +#line 1944 "Gmsh.y" { yyval.d = yyvsp[-1].d ; ; break;} case 239: -#line 1937 "Gmsh.y" +#line 1945 "Gmsh.y" { yyval.d = -yyvsp[0].d ; ; break;} case 240: -#line 1938 "Gmsh.y" +#line 1946 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 241: -#line 1939 "Gmsh.y" +#line 1947 "Gmsh.y" { yyval.d = !yyvsp[0].d ; ; break;} case 242: -#line 1940 "Gmsh.y" +#line 1948 "Gmsh.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d ; ; break;} case 243: -#line 1941 "Gmsh.y" +#line 1949 "Gmsh.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d ; ; break;} case 244: -#line 1942 "Gmsh.y" +#line 1950 "Gmsh.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d ; ; break;} case 245: -#line 1944 "Gmsh.y" +#line 1952 "Gmsh.y" { if(!yyvsp[0].d) vyyerror("Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d); @@ -4929,143 +4937,143 @@ case 245: ; break;} case 246: -#line 1950 "Gmsh.y" +#line 1958 "Gmsh.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ; ; break;} case 247: -#line 1951 "Gmsh.y" +#line 1959 "Gmsh.y" { yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ; ; break;} case 248: -#line 1952 "Gmsh.y" +#line 1960 "Gmsh.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d ; ; break;} case 249: -#line 1953 "Gmsh.y" +#line 1961 "Gmsh.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d ; ; break;} case 250: -#line 1954 "Gmsh.y" +#line 1962 "Gmsh.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d ; ; break;} case 251: -#line 1955 "Gmsh.y" +#line 1963 "Gmsh.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d ; ; break;} case 252: -#line 1956 "Gmsh.y" +#line 1964 "Gmsh.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d ; ; break;} case 253: -#line 1957 "Gmsh.y" +#line 1965 "Gmsh.y" { yyval.d = yyvsp[-2].d != yyvsp[0].d ; ; break;} case 254: -#line 1958 "Gmsh.y" +#line 1966 "Gmsh.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d ; ; break;} case 255: -#line 1959 "Gmsh.y" +#line 1967 "Gmsh.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d ; ; break;} case 256: -#line 1960 "Gmsh.y" +#line 1968 "Gmsh.y" { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ; break;} case 257: -#line 1961 "Gmsh.y" +#line 1969 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} case 258: -#line 1962 "Gmsh.y" +#line 1970 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} case 259: -#line 1963 "Gmsh.y" +#line 1971 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} case 260: -#line 1964 "Gmsh.y" +#line 1972 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} case 261: -#line 1965 "Gmsh.y" +#line 1973 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} case 262: -#line 1966 "Gmsh.y" +#line 1974 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} case 263: -#line 1967 "Gmsh.y" +#line 1975 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} case 264: -#line 1968 "Gmsh.y" +#line 1976 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} case 265: -#line 1969 "Gmsh.y" +#line 1977 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} case 266: -#line 1970 "Gmsh.y" +#line 1978 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} case 267: -#line 1971 "Gmsh.y" +#line 1979 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 268: -#line 1972 "Gmsh.y" +#line 1980 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} case 269: -#line 1973 "Gmsh.y" +#line 1981 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} case 270: -#line 1974 "Gmsh.y" +#line 1982 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} case 271: -#line 1975 "Gmsh.y" +#line 1983 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} case 272: -#line 1976 "Gmsh.y" +#line 1984 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} case 273: -#line 1977 "Gmsh.y" +#line 1985 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} case 274: -#line 1978 "Gmsh.y" +#line 1986 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 275: -#line 1979 "Gmsh.y" +#line 1987 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 276: -#line 1980 "Gmsh.y" +#line 1988 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 277: -#line 1981 "Gmsh.y" +#line 1989 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} case 278: -#line 1990 "Gmsh.y" +#line 1998 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 279: -#line 1991 "Gmsh.y" +#line 1999 "Gmsh.y" { yyval.d = 3.141592653589793; ; break;} case 280: -#line 1996 "Gmsh.y" +#line 2004 "Gmsh.y" { TheSymbol.Name = yyvsp[0].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5077,7 +5085,7 @@ case 280: ; break;} case 281: -#line 2007 "Gmsh.y" +#line 2015 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5095,7 +5103,7 @@ case 281: ; break;} case 282: -#line 2024 "Gmsh.y" +#line 2032 "Gmsh.y" { TheSymbol.Name = yyvsp[-1].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5107,7 +5115,7 @@ case 282: ; break;} case 283: -#line 2035 "Gmsh.y" +#line 2043 "Gmsh.y" { TheSymbol.Name = yyvsp[-4].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5125,7 +5133,7 @@ case 283: ; break;} case 284: -#line 2054 "Gmsh.y" +#line 2062 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c))){ vyyerror("Unknown numeric option class '%s'", yyvsp[-2].c); @@ -5142,7 +5150,7 @@ case 284: ; break;} case 285: -#line 2070 "Gmsh.y" +#line 2078 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))){ vyyerror("Unknown numeric option class '%s'", yyvsp[-5].c); @@ -5159,7 +5167,7 @@ case 285: ; break;} case 286: -#line 2086 "Gmsh.y" +#line 2094 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))){ vyyerror("Unknown numeric option class '%s'", yyvsp[-3].c); @@ -5176,7 +5184,7 @@ case 286: ; break;} case 287: -#line 2102 "Gmsh.y" +#line 2110 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-6].c))){ vyyerror("Unknown numeric option class '%s'", yyvsp[-6].c); @@ -5193,7 +5201,7 @@ case 287: ; break;} case 288: -#line 2120 "Gmsh.y" +#line 2128 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; for(d=yyvsp[-2].d ; (yyvsp[-2].d<yyvsp[0].d)?(d<=yyvsp[0].d):(d>=yyvsp[0].d) ; (yyvsp[-2].d<yyvsp[0].d)?(d+=1.):(d-=1.)) @@ -5201,7 +5209,7 @@ case 288: ; break;} case 289: -#line 2126 "Gmsh.y" +#line 2134 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; if(!yyvsp[0].d || (yyvsp[-4].d<yyvsp[-2].d && yyvsp[0].d<0) || (yyvsp[-4].d>yyvsp[-2].d && yyvsp[0].d>0)){ @@ -5214,123 +5222,123 @@ case 289: ; break;} case 290: -#line 2140 "Gmsh.y" +#line 2148 "Gmsh.y" { memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)) ; ; break;} case 291: -#line 2144 "Gmsh.y" +#line 2152 "Gmsh.y" { for(i=0 ; i<5 ; i++) yyval.v[i] = -yyvsp[0].v[i] ; ; break;} case 292: -#line 2148 "Gmsh.y" +#line 2156 "Gmsh.y" { for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} case 293: -#line 2152 "Gmsh.y" +#line 2160 "Gmsh.y" { for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i] ; ; break;} case 294: -#line 2156 "Gmsh.y" +#line 2164 "Gmsh.y" { for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i] ; ; break;} case 295: -#line 2162 "Gmsh.y" +#line 2170 "Gmsh.y" { yyval.v[0]=yyvsp[-9].d; yyval.v[1]=yyvsp[-7].d; yyval.v[2]=yyvsp[-5].d; yyval.v[3]=yyvsp[-3].d; yyval.v[4]=yyvsp[-1].d; ; break;} case 296: -#line 2166 "Gmsh.y" +#line 2174 "Gmsh.y" { yyval.v[0]=yyvsp[-7].d; yyval.v[1]=yyvsp[-5].d; yyval.v[2]=yyvsp[-3].d; yyval.v[3]=yyvsp[-1].d; yyval.v[4]=1.0; ; break;} case 297: -#line 2170 "Gmsh.y" +#line 2178 "Gmsh.y" { yyval.v[0]=yyvsp[-5].d; yyval.v[1]=yyvsp[-3].d; yyval.v[2]=yyvsp[-1].d; yyval.v[3]=0.0; yyval.v[4]=1.0; ; break;} case 298: -#line 2174 "Gmsh.y" +#line 2182 "Gmsh.y" { yyval.v[0]=yyvsp[-5].d; yyval.v[1]=yyvsp[-3].d; yyval.v[2]=yyvsp[-1].d; yyval.v[3]=0.0; yyval.v[4]=1.0; ; break;} case 299: -#line 2181 "Gmsh.y" +#line 2189 "Gmsh.y" { ; break;} case 300: -#line 2184 "Gmsh.y" +#line 2192 "Gmsh.y" { ; break;} case 301: -#line 2190 "Gmsh.y" +#line 2198 "Gmsh.y" { ; break;} case 302: -#line 2193 "Gmsh.y" +#line 2201 "Gmsh.y" { ; break;} case 303: -#line 2199 "Gmsh.y" +#line 2207 "Gmsh.y" { ; break;} case 304: -#line 2202 "Gmsh.y" +#line 2210 "Gmsh.y" { yyval.l=yyvsp[-1].l; ; break;} case 305: -#line 2206 "Gmsh.y" +#line 2214 "Gmsh.y" { yyval.l=yyvsp[-1].l; ; break;} case 306: -#line 2213 "Gmsh.y" +#line 2221 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(List_T*)) ; List_Add(yyval.l, &(yyvsp[0].l)) ; ; break;} case 307: -#line 2218 "Gmsh.y" +#line 2226 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].l)) ; ; break;} case 308: -#line 2226 "Gmsh.y" +#line 2234 "Gmsh.y" { yyval.l = yyvsp[0].l ; ; break;} case 309: -#line 2230 "Gmsh.y" +#line 2238 "Gmsh.y" { yyval.l=yyvsp[-1].l; ; break;} case 310: -#line 2234 "Gmsh.y" +#line 2242 "Gmsh.y" { yyval.l=yyvsp[-1].l; for(i=0 ; i<List_Nbr(yyval.l) ; i++){ @@ -5340,20 +5348,20 @@ case 310: ; break;} case 311: -#line 2245 "Gmsh.y" +#line 2253 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; List_Add(yyval.l, &(yyvsp[0].d)) ; ; break;} case 312: -#line 2250 "Gmsh.y" +#line 2258 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 313: -#line 2254 "Gmsh.y" +#line 2262 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; TheSymbol.Name = yyvsp[-2].c ; @@ -5369,7 +5377,7 @@ case 313: ; break;} case 314: -#line 2268 "Gmsh.y" +#line 2276 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; TheSymbol.Name = yyvsp[-2].c ; @@ -5387,7 +5395,7 @@ case 314: ; break;} case 315: -#line 2284 "Gmsh.y" +#line 2292 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; TheSymbol.Name = yyvsp[-5].c ; @@ -5409,7 +5417,7 @@ case 315: ; break;} case 316: -#line 2304 "Gmsh.y" +#line 2312 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; TheSymbol.Name = yyvsp[-5].c ; @@ -5433,19 +5441,19 @@ case 316: ; break;} case 317: -#line 2329 "Gmsh.y" +#line 2337 "Gmsh.y" { yyval.l = yyvsp[0].l ; ; break;} case 318: -#line 2333 "Gmsh.y" +#line 2341 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].d)) ; ; break;} case 319: -#line 2337 "Gmsh.y" +#line 2345 "Gmsh.y" { for(i=0 ; i<List_Nbr(yyvsp[0].l) ; i++){ List_Read(yyvsp[0].l, i, &d) ; @@ -5454,7 +5462,7 @@ case 319: ; break;} case 320: -#line 2344 "Gmsh.y" +#line 2352 "Gmsh.y" { TheSymbol.Name = yyvsp[-2].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5467,7 +5475,7 @@ case 320: ; break;} case 321: -#line 2355 "Gmsh.y" +#line 2363 "Gmsh.y" { TheSymbol.Name = yyvsp[-2].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5482,7 +5490,7 @@ case 321: ; break;} case 322: -#line 2368 "Gmsh.y" +#line 2376 "Gmsh.y" { TheSymbol.Name = yyvsp[-5].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5501,7 +5509,7 @@ case 322: ; break;} case 323: -#line 2385 "Gmsh.y" +#line 2393 "Gmsh.y" { TheSymbol.Name = yyvsp[-5].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5522,33 +5530,33 @@ case 323: ; break;} case 324: -#line 2407 "Gmsh.y" +#line 2415 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d); ; break;} case 325: -#line 2411 "Gmsh.y" +#line 2419 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} case 326: -#line 2415 "Gmsh.y" +#line 2423 "Gmsh.y" { yyval.u = Get_ColorForString(ColorString, (int)yyvsp[-1].d, yyvsp[-3].c, &flag); if(flag) vyyerror("Unknown color '%s'", yyvsp[-3].c); ; break;} case 327: -#line 2420 "Gmsh.y" +#line 2428 "Gmsh.y" { yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); if(flag) vyyerror("Unknown color '%s'", yyvsp[0].c); ; break;} case 328: -#line 2425 "Gmsh.y" +#line 2433 "Gmsh.y" { if(!(pColCat = Get_ColorOptionCategory(yyvsp[-4].c))){ vyyerror("Unknown color option class '%s'", yyvsp[-4].c); @@ -5566,13 +5574,13 @@ case 328: ; break;} case 329: -#line 2444 "Gmsh.y" +#line 2452 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 330: -#line 2448 "Gmsh.y" +#line 2456 "Gmsh.y" { yyval.l = List_Create(256,10,sizeof(unsigned int)) ; ColorTable *ct = Get_ColorTable((int)yyvsp[-3].d); @@ -5585,32 +5593,32 @@ case 330: ; break;} case 331: -#line 2462 "Gmsh.y" +#line 2470 "Gmsh.y" { yyval.l = List_Create(256,10,sizeof(unsigned int)) ; List_Add(yyval.l, &(yyvsp[0].u)) ; ; break;} case 332: -#line 2467 "Gmsh.y" +#line 2475 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].u)) ; ; break;} case 333: -#line 2474 "Gmsh.y" +#line 2482 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} case 334: -#line 2478 "Gmsh.y" +#line 2486 "Gmsh.y" { yyval.c = yyvsp[-1].c; ; break;} case 335: -#line 2482 "Gmsh.y" +#line 2490 "Gmsh.y" { for(i = 0 ; i<List_Nbr(yyvsp[-1].l) ; i++){ if(!i){ @@ -5857,7 +5865,7 @@ yyerrhandle: } return 1; } -#line 2507 "Gmsh.y" +#line 2515 "Gmsh.y" void InitSymbols(void){ diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 1baacf8589f77ff5b89989f44194dfa6628dbb3e..677b5a59cbe2f14f896815d793c7ed66c0853a30 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,6 +1,6 @@ %{ -// $Id: Gmsh.y,v 1.75 2001-04-20 08:52:24 geuzaine Exp $ +// $Id: Gmsh.y,v 1.76 2001-04-26 17:58:00 remacle Exp $ #include <stdarg.h> @@ -23,6 +23,7 @@ #include "ColorTable.h" #include "Timer.h" #include "CreateFile.h" +#include "STL.h" #ifdef __DECCXX // bug in bison #include <alloca.h> @@ -1475,6 +1476,13 @@ Command : MergeProblem($2); yyin = ff; + } + else if(!strcmp($1, "Open")){ + + FILE *ff = yyin; + OpenProblem($2); + yyin = ff; + } else if(!strcmp($1, "System")){ diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 3bd11d55087dac172ddb50406c2c27010e73bb36..e564aa399143457dd3e350d6a36b2ca99196b158 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -2,7 +2,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.85 2001-04-20 08:52:24 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.86 2001-04-26 17:58:00 remacle Exp $ */ #define FLEX_SCANNER @@ -978,7 +978,7 @@ char *yytext; #define INITIAL 0 #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.85 2001-04-20 08:52:24 geuzaine Exp $ +// $Id: Gmsh.yy.cpp,v 1.86 2001-04-26 17:58:00 remacle Exp $ #include <stdio.h> #include <stdlib.h> diff --git a/Parser/OpenFile.cpp b/Parser/OpenFile.cpp index 85596a5e21c89d2eadc4b115b30cf4c52d8ca813..902b6d4ad85e645e85c35f2d6e33e821d637b55e 100644 --- a/Parser/OpenFile.cpp +++ b/Parser/OpenFile.cpp @@ -1,4 +1,4 @@ -// $Id: OpenFile.cpp,v 1.12 2001-04-22 18:13:03 geuzaine Exp $ +// $Id: OpenFile.cpp,v 1.13 2001-04-26 17:58:00 remacle Exp $ #include "Gmsh.h" #include "Const.h" #include "Context.h" @@ -103,6 +103,8 @@ void OpenProblem(char *name){ strcpy(ext,name+(strlen(name)-4)); if(!strcmp(ext,".geo") || !strcmp(ext,".GEO") || !strcmp(ext,".msh") || !strcmp(ext,".MSH") || + !strcmp(ext,".stl") || !strcmp(ext,".MSH") || + !strcmp(ext,".sms") || !strcmp(ext,".SMS") || !strcmp(ext,".pos") || !strcmp(ext,".POS")){ CTX.basefilename[strlen(name)-4] = '\0'; }