diff --git a/Geo/CAD.cpp b/Geo/CAD.cpp index 85df308ff7e6b25b5c4d4a03f0f0247bc67d18e5..22220279566236bbb776dba7a4b5d0d47a770106 100644 --- a/Geo/CAD.cpp +++ b/Geo/CAD.cpp @@ -1,4 +1,4 @@ -// $Id: CAD.cpp,v 1.27 2001-08-12 12:30:49 geuzaine Exp $ +// $Id: CAD.cpp,v 1.28 2001-08-13 18:38:55 geuzaine Exp $ #include "Gmsh.h" #include "Numeric.h" @@ -1444,6 +1444,7 @@ void ApplicationOnShapes(double matrix[4][4], List_T *ListShapes){ break; case MSH_SEGM_LINE: case MSH_SEGM_SPLN: + case MSH_SEGM_BSPLN: case MSH_SEGM_CIRC: case MSH_SEGM_ELLI: case MSH_SEGM_NURBS: @@ -1525,6 +1526,7 @@ void CopyShape(int Type, int Num, int *New){ break; case MSH_SEGM_LINE: case MSH_SEGM_SPLN: + case MSH_SEGM_BSPLN: case MSH_SEGM_CIRC: case MSH_SEGM_ELLI: case MSH_SEGM_NURBS: @@ -1611,6 +1613,7 @@ void DeleteShape(int Type, int Num){ break; case MSH_SEGM_LINE: case MSH_SEGM_SPLN: + case MSH_SEGM_BSPLN: case MSH_SEGM_CIRC: case MSH_SEGM_ELLI: case MSH_SEGM_NURBS: diff --git a/Geo/Print_Geo.cpp b/Geo/Print_Geo.cpp index 92bda2243ce1ad04d214f7f7dc35821a99db0f93..72d2bf670a56200b52727ca7a74ab445ac94b6ed 100644 --- a/Geo/Print_Geo.cpp +++ b/Geo/Print_Geo.cpp @@ -1,4 +1,4 @@ -// $Id: Print_Geo.cpp,v 1.18 2001-08-13 15:24:54 geuzaine Exp $ +// $Id: Print_Geo.cpp,v 1.19 2001-08-13 18:38:55 geuzaine Exp $ #include "Gmsh.h" #include "Geo.h" @@ -66,6 +66,9 @@ void Print_Curve(void *a, void *b){ case MSH_SEGM_SPLN: fprintf(FOUT,"CatmullRom (%d) = ",c->Num); break; + case MSH_SEGM_BSPLN: + fprintf(FOUT,"BSpline (%d) = ",c->Num); + break; default: Msg(GERROR, "Unknown Curve type %d", c->Typ); return; diff --git a/Mesh/3D_Mesh.cpp b/Mesh/3D_Mesh.cpp index d42bab8891cb2064ad8a65709f4057fa6d9c1c9e..5d91a4a6600ca9d509a9f9f9fba7bdda3a260673 100644 --- a/Mesh/3D_Mesh.cpp +++ b/Mesh/3D_Mesh.cpp @@ -1,4 +1,4 @@ -// $Id: 3D_Mesh.cpp,v 1.26 2001-08-13 09:42:02 geuzaine Exp $ +// $Id: 3D_Mesh.cpp,v 1.27 2001-08-13 18:38:55 geuzaine Exp $ /* @@ -711,12 +711,6 @@ void Maillage_Volume (void *data, void *dum){ double uvw[3]; int i; - // WE SHOULD ALLOCATE THESE GUYS HERE AND NOT IN Bowyer_Watson - // MEMORY BUG -JF - - Simplexes_New = List_Create (10, 10, sizeof (Simplex *)); - Simplexes_Destroyed = List_Create (10, 10, sizeof (Simplex *)); - FACE_DIMENSION = 2; pv = (Volume **) data; @@ -733,6 +727,9 @@ void Maillage_Volume (void *data, void *dum){ } else if (v->Typ == 99999){ + Simplexes_New = List_Create (10, 10, sizeof (Simplex *)); + Simplexes_Destroyed = List_Create (10, 10, sizeof (Simplex *)); + LOCAL = &M; Create_BgMesh (THEM->BGM.Typ, .2, LOCAL); s = &S; @@ -868,6 +865,9 @@ void Maillage_Volume (void *data, void *dum){ if (CTX.mesh.degree == 2) Degre2 (THEM->Vertices, THEM->VertexEdges, v->Simplexes, NULL, NULL); + + List_Delete(Simplexes_New); + List_Delete(Simplexes_Destroyed); } THEM->Statistics[6] += Tree_Nbr(v->Vertices); @@ -880,8 +880,5 @@ void Maillage_Volume (void *data, void *dum){ Eta_Maillage (THEM, &THEM->Statistics[20], &THEM->Statistics[21], &THEM->Statistics[22]); R_Maillage (THEM, &THEM->Statistics[23], &THEM->Statistics[24], &THEM->Statistics[25]); } - // WE SHOULD DESALLOCATE THESE GUYS HERE AND NOT NOWHERE ;-) - // MEMORY BUG -JF - List_Delete(Simplexes_New); - List_Delete(Simplexes_Destroyed); + } diff --git a/Mesh/Create.cpp b/Mesh/Create.cpp index c65a204159ea74c6ba713eac253e3b48d567419b..3e1af5ea15894ae32024c2127deb6daaa9c82d0e 100644 --- a/Mesh/Create.cpp +++ b/Mesh/Create.cpp @@ -1,4 +1,4 @@ -// $Id: Create.cpp,v 1.23 2001-08-11 23:28:32 geuzaine Exp $ +// $Id: Create.cpp,v 1.24 2001-08-13 18:38:55 geuzaine Exp $ #include "Gmsh.h" #include "Numeric.h" @@ -441,7 +441,6 @@ Curve *Create_Curve (int Num, int Typ, int Order, List_T * Liste, for (i = 0; i < 4; i++) for (j = 0; j < 4; j++) pC->mat[i][j] = matcr[i][j]; - } else if (Typ == MSH_SEGM_BSPLN){ for (i = 0; i < 4; i++) diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index f4fef3866322e7ce1f354dd51e075acdb3c718a9..955f1c7ae1f97de6a6608bd8e4a1b5a8d72daf94 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -174,7 +174,7 @@ #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.107 2001-08-13 16:13:14 geuzaine Exp $ +// $Id: Gmsh.tab.cpp,v 1.108 2001-08-13 18:38:55 geuzaine Exp $ // // Generaliser sprintf avec des chaines de caracteres @@ -599,24 +599,24 @@ static const short yyrline[] = { 0, 824, 871, 886, 895, 910, 922, 936, 959, 983, 995, 1009, 1021, 1035, 1051, 1067, 1080, 1100, 1111, 1117, 1136, 1147, 1155, 1161, 1167, 1186, 1192, 1198, 1214, 1221, 1227, - 1233, 1239, 1258, 1270, 1276, 1295, 1316, 1324, 1330, 1336, - 1342, 1354, 1360, 1366, 1378, 1384, 1389, 1394, 1401, 1403, - 1404, 1407, 1412, 1423, 1441, 1449, 1454, 1465, 1533, 1553, - 1559, 1563, 1583, 1599, 1613, 1638, 1663, 1689, 1695, 1700, - 1705, 1709, 1719, 1725, 1731, 1735, 1739, 1743, 1747, 1752, - 1757, 1763, 1770, 1774, 1779, 1800, 1810, 1829, 1847, 1865, - 1887, 1908, 1929, 1943, 1964, 1969, 1980, 1982, 1983, 1984, - 1985, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, - 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, - 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, - 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, - 2034, 2035, 2040, 2045, 2046, 2047, 2051, 2062, 2079, 2090, - 2109, 2125, 2141, 2157, 2174, 2179, 2183, 2187, 2191, 2196, - 2201, 2205, 2209, 2215, 2219, 2224, 2228, 2233, 2237, 2241, - 2247, 2253, 2260, 2266, 2270, 2274, 2284, 2291, 2302, 2316, - 2332, 2352, 2376, 2382, 2386, 2390, 2401, 2406, 2417, 2422, - 2440, 2445, 2458, 2464, 2470, 2475, 2483, 2496, 2500, 2525, - 2539 + 1233, 1244, 1263, 1275, 1281, 1300, 1321, 1329, 1335, 1341, + 1347, 1359, 1365, 1371, 1383, 1389, 1394, 1399, 1406, 1408, + 1409, 1412, 1417, 1428, 1446, 1454, 1459, 1470, 1538, 1558, + 1564, 1568, 1588, 1604, 1618, 1643, 1668, 1694, 1700, 1705, + 1710, 1714, 1724, 1730, 1736, 1740, 1744, 1748, 1752, 1757, + 1762, 1768, 1775, 1779, 1784, 1805, 1815, 1834, 1852, 1870, + 1892, 1913, 1934, 1948, 1969, 1974, 1985, 1987, 1988, 1989, + 1990, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, + 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, + 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, + 2039, 2040, 2045, 2050, 2051, 2052, 2056, 2067, 2084, 2095, + 2114, 2130, 2146, 2162, 2179, 2184, 2188, 2192, 2196, 2201, + 2206, 2210, 2214, 2220, 2224, 2229, 2233, 2238, 2242, 2246, + 2252, 2258, 2265, 2271, 2275, 2279, 2289, 2296, 2307, 2321, + 2337, 2357, 2381, 2387, 2391, 2395, 2406, 2411, 2422, 2427, + 2445, 2450, 2463, 2469, 2475, 2480, 2488, 2501, 2505, 2530, + 2544 }; #endif @@ -4119,13 +4119,18 @@ case 170: case 171: #line 1234 "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; - yyval.s.Num = (int)yyvsp[-4].d; + if(List_Nbr(yyvsp[-1].l) > 3){ + 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; + yyval.s.Num = (int)yyvsp[-4].d; + } + else + vyyerror("Too few control points for BSpline %d (%d < 4)", (int)yyvsp[-4].d, + List_Nbr(yyvsp[-1].l)); ; break;} case 172: -#line 1240 "Gmsh.y" +#line 1245 "Gmsh.y" { List_T *Temp; int i; @@ -4146,7 +4151,7 @@ case 172: ; break;} case 173: -#line 1259 "Gmsh.y" +#line 1264 "Gmsh.y" { yyval.s.Num = (int)yyvsp[-2].d; Curve *c = FindCurve(yyval.s.Num,THEM); @@ -4157,7 +4162,7 @@ case 173: ; break;} case 174: -#line 1271 "Gmsh.y" +#line 1276 "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; @@ -4165,7 +4170,7 @@ case 174: ; break;} case 175: -#line 1277 "Gmsh.y" +#line 1282 "Gmsh.y" { Surface *s,*support; support = FindSurface((int)yyvsp[-4].d,THEM); @@ -4186,7 +4191,7 @@ case 175: ; break;} case 176: -#line 1296 "Gmsh.y" +#line 1301 "Gmsh.y" { List_Read(yyvsp[-1].l,0,&d); i = (int)d; @@ -4209,7 +4214,7 @@ case 176: ; break;} case 177: -#line 1319 "Gmsh.y" +#line 1324 "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; @@ -4217,13 +4222,13 @@ case 177: ; break;} case 178: -#line 1327 "Gmsh.y" +#line 1332 "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 179: -#line 1331 "Gmsh.y" +#line 1336 "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; @@ -4231,7 +4236,7 @@ case 179: ; break;} case 180: -#line 1337 "Gmsh.y" +#line 1342 "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; @@ -4239,7 +4244,7 @@ case 180: ; break;} case 181: -#line 1343 "Gmsh.y" +#line 1348 "Gmsh.y" { yyval.s.Num = (int)yyvsp[-2].d; Surface *s = FindSurface(yyval.s.Num,THEM); @@ -4250,7 +4255,7 @@ case 181: ; break;} case 182: -#line 1355 "Gmsh.y" +#line 1360 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_VOLUME; @@ -4258,7 +4263,7 @@ case 182: ; break;} case 183: -#line 1361 "Gmsh.y" +#line 1366 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_VOLUME; @@ -4266,7 +4271,7 @@ case 183: ; break;} case 184: -#line 1367 "Gmsh.y" +#line 1372 "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; @@ -4274,60 +4279,60 @@ case 184: ; break;} case 185: -#line 1380 "Gmsh.y" +#line 1385 "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 186: -#line 1385 "Gmsh.y" +#line 1390 "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 187: -#line 1390 "Gmsh.y" +#line 1395 "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 188: -#line 1395 "Gmsh.y" +#line 1400 "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 189: -#line 1402 "Gmsh.y" +#line 1407 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 190: -#line 1403 "Gmsh.y" +#line 1408 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 191: -#line 1404 "Gmsh.y" +#line 1409 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 192: -#line 1409 "Gmsh.y" +#line 1414 "Gmsh.y" { yyval.l = List_Create(3,3,sizeof(Shape)); ; break;} case 193: -#line 1413 "Gmsh.y" +#line 1418 "Gmsh.y" { List_Add(yyval.l,&yyvsp[0].s); yyval.l = yyvsp[-1].l; ; break;} case 194: -#line 1425 "Gmsh.y" +#line 1430 "Gmsh.y" { yyval.l = List_Create(3,3,sizeof(Shape)); for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ @@ -4339,7 +4344,7 @@ case 194: ; break;} case 195: -#line 1443 "Gmsh.y" +#line 1448 "Gmsh.y" { for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ List_Read (yyvsp[-1].l,i,&TheShape); @@ -4348,20 +4353,20 @@ case 195: ; break;} case 196: -#line 1450 "Gmsh.y" +#line 1455 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) FreeView((int)yyvsp[-2].d); ; break;} case 197: -#line 1455 "Gmsh.y" +#line 1460 "Gmsh.y" { Init_Mesh(THEM, 1); ; break;} case 198: -#line 1467 "Gmsh.y" +#line 1472 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Include")){ @@ -4430,7 +4435,7 @@ case 198: ; break;} case 199: -#line 1534 "Gmsh.y" +#line 1539 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Sleep")){ @@ -4452,7 +4457,7 @@ case 199: ; break;} case 200: -#line 1554 "Gmsh.y" +#line 1559 "Gmsh.y" { #ifndef _NOPLUGIN GMSH_PluginManager::Instance()->Action(yyvsp[-4].c,yyvsp[-1].c,0); @@ -4460,13 +4465,13 @@ case 200: ; break;} case 201: -#line 1560 "Gmsh.y" +#line 1565 "Gmsh.y" { exit(0); ; break;} case 202: -#line 1564 "Gmsh.y" +#line 1569 "Gmsh.y" { if(!CTX.batch){ // we're in interactive mode if(Tree_Nbr(THEM->Points) != Last_NumberOfPoints){ @@ -4482,7 +4487,7 @@ case 202: ; break;} case 203: -#line 1586 "Gmsh.y" +#line 1591 "Gmsh.y" { FILE* ff; if(RecursionLevel) @@ -4498,7 +4503,7 @@ case 203: ; break;} case 204: -#line 1600 "Gmsh.y" +#line 1605 "Gmsh.y" { FILE* ff; if(RecursionLevel) @@ -4514,7 +4519,7 @@ case 204: ; break;} case 205: -#line 1614 "Gmsh.y" +#line 1619 "Gmsh.y" { FILE* ff; if(RecursionLevel) @@ -4541,7 +4546,7 @@ case 205: ; break;} case 206: -#line 1639 "Gmsh.y" +#line 1644 "Gmsh.y" { FILE* ff; if(RecursionLevel) @@ -4568,7 +4573,7 @@ case 206: ; break;} case 207: -#line 1664 "Gmsh.y" +#line 1669 "Gmsh.y" { if(LoopControlVariablesTab[ImbricatedLoop-1][1] > LoopControlVariablesTab[ImbricatedLoop-1][0]){ @@ -4596,7 +4601,7 @@ case 207: ; break;} case 208: -#line 1690 "Gmsh.y" +#line 1695 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction(yyvsp[0].c,yyin,yylineno)) vyyerror("Redefinition of function %s",yyvsp[0].c); @@ -4604,39 +4609,39 @@ case 208: ; break;} case 209: -#line 1696 "Gmsh.y" +#line 1701 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction(&yyin,yylineno)) vyyerror("Error while exiting function"); ; break;} case 210: -#line 1701 "Gmsh.y" +#line 1706 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c,&yyin,yylineno)) vyyerror("Unknown function %s",yyvsp[-1].c); ; break;} case 211: -#line 1706 "Gmsh.y" +#line 1711 "Gmsh.y" { if(!yyvsp[-1].d) skip_until("If", "EndIf"); ; break;} case 212: -#line 1710 "Gmsh.y" +#line 1715 "Gmsh.y" { ; break;} case 213: -#line 1721 "Gmsh.y" +#line 1726 "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 214: -#line 1726 "Gmsh.y" +#line 1731 "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, @@ -4644,69 +4649,69 @@ case 214: ; break;} case 215: -#line 1732 "Gmsh.y" +#line 1737 "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 216: -#line 1736 "Gmsh.y" +#line 1741 "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 217: -#line 1740 "Gmsh.y" +#line 1745 "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 218: -#line 1744 "Gmsh.y" +#line 1749 "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 219: -#line 1748 "Gmsh.y" +#line 1753 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 220: -#line 1753 "Gmsh.y" +#line 1758 "Gmsh.y" { int vol = NEWREG(); Extrude_ProtudeSurface(1,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],0.,0.,0.,0.,vol,&extr); ; break;} case 221: -#line 1758 "Gmsh.y" +#line 1763 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 222: -#line 1764 "Gmsh.y" +#line 1769 "Gmsh.y" { int vol = NEWREG(); Extrude_ProtudeSurface(0,(int)yyvsp[-12].d,yyvsp[-10].v[0],yyvsp[-10].v[1],yyvsp[-10].v[2],yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].d,vol,&extr); ; break;} case 223: -#line 1772 "Gmsh.y" +#line 1777 "Gmsh.y" { ; break;} case 224: -#line 1775 "Gmsh.y" +#line 1780 "Gmsh.y" { ; break;} case 225: -#line 1781 "Gmsh.y" +#line 1786 "Gmsh.y" { double d; int j; @@ -4728,13 +4733,13 @@ case 225: ; break;} case 226: -#line 1801 "Gmsh.y" +#line 1806 "Gmsh.y" { extr.mesh.Recombine = true; ; break;} case 227: -#line 1812 "Gmsh.y" +#line 1817 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ @@ -4754,7 +4759,7 @@ case 227: ; break;} case 228: -#line 1830 "Gmsh.y" +#line 1835 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ @@ -4774,7 +4779,7 @@ case 228: ; break;} case 229: -#line 1848 "Gmsh.y" +#line 1853 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ @@ -4794,7 +4799,7 @@ case 229: ; break;} case 230: -#line 1866 "Gmsh.y" +#line 1871 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d,THEM); if(!s) @@ -4818,7 +4823,7 @@ case 230: ; break;} case 231: -#line 1888 "Gmsh.y" +#line 1893 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d,THEM); if(!s) @@ -4841,7 +4846,7 @@ case 231: ; break;} case 232: -#line 1909 "Gmsh.y" +#line 1914 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d,THEM); if(!v) @@ -4864,7 +4869,7 @@ case 232: ; break;} case 233: -#line 1930 "Gmsh.y" +#line 1935 "Gmsh.y" { Surface *s; for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ @@ -4880,7 +4885,7 @@ case 233: ; break;} case 234: -#line 1944 "Gmsh.y" +#line 1949 "Gmsh.y" { Surface *s; for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ @@ -4896,71 +4901,71 @@ case 234: ; break;} case 235: -#line 1966 "Gmsh.y" +#line 1971 "Gmsh.y" { Coherence_PS(); ; break;} case 236: -#line 1970 "Gmsh.y" +#line 1975 "Gmsh.y" { IntersectAllSegmentsTogether(); ; break;} case 237: -#line 1981 "Gmsh.y" +#line 1986 "Gmsh.y" {yyval.i = 1;; break;} case 238: -#line 1982 "Gmsh.y" +#line 1987 "Gmsh.y" {yyval.i = 0;; break;} case 239: -#line 1983 "Gmsh.y" +#line 1988 "Gmsh.y" {yyval.i = -1;; break;} case 240: -#line 1984 "Gmsh.y" +#line 1989 "Gmsh.y" {yyval.i = -1;; break;} case 241: -#line 1985 "Gmsh.y" +#line 1990 "Gmsh.y" {yyval.i = -1;; break;} case 242: -#line 1989 "Gmsh.y" +#line 1994 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 243: -#line 1990 "Gmsh.y" +#line 1995 "Gmsh.y" { yyval.d = yyvsp[-1].d ; ; break;} case 244: -#line 1991 "Gmsh.y" +#line 1996 "Gmsh.y" { yyval.d = -yyvsp[0].d ; ; break;} case 245: -#line 1992 "Gmsh.y" +#line 1997 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 246: -#line 1993 "Gmsh.y" +#line 1998 "Gmsh.y" { yyval.d = !yyvsp[0].d ; ; break;} case 247: -#line 1994 "Gmsh.y" +#line 1999 "Gmsh.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d ; ; break;} case 248: -#line 1995 "Gmsh.y" +#line 2000 "Gmsh.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d ; ; break;} case 249: -#line 1996 "Gmsh.y" +#line 2001 "Gmsh.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d ; ; break;} case 250: -#line 1998 "Gmsh.y" +#line 2003 "Gmsh.y" { if(!yyvsp[0].d) vyyerror("Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d); @@ -4969,151 +4974,151 @@ case 250: ; break;} case 251: -#line 2004 "Gmsh.y" +#line 2009 "Gmsh.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ; ; break;} case 252: -#line 2005 "Gmsh.y" +#line 2010 "Gmsh.y" { yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ; ; break;} case 253: -#line 2006 "Gmsh.y" +#line 2011 "Gmsh.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d ; ; break;} case 254: -#line 2007 "Gmsh.y" +#line 2012 "Gmsh.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d ; ; break;} case 255: -#line 2008 "Gmsh.y" +#line 2013 "Gmsh.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d ; ; break;} case 256: -#line 2009 "Gmsh.y" +#line 2014 "Gmsh.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d ; ; break;} case 257: -#line 2010 "Gmsh.y" +#line 2015 "Gmsh.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d ; ; break;} case 258: -#line 2011 "Gmsh.y" +#line 2016 "Gmsh.y" { yyval.d = yyvsp[-2].d != yyvsp[0].d ; ; break;} case 259: -#line 2012 "Gmsh.y" +#line 2017 "Gmsh.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d ; ; break;} case 260: -#line 2013 "Gmsh.y" +#line 2018 "Gmsh.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d ; ; break;} case 261: -#line 2014 "Gmsh.y" +#line 2019 "Gmsh.y" { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ; break;} case 262: -#line 2015 "Gmsh.y" +#line 2020 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} case 263: -#line 2016 "Gmsh.y" +#line 2021 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} case 264: -#line 2017 "Gmsh.y" +#line 2022 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} case 265: -#line 2018 "Gmsh.y" +#line 2023 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} case 266: -#line 2019 "Gmsh.y" +#line 2024 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} case 267: -#line 2020 "Gmsh.y" +#line 2025 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} case 268: -#line 2021 "Gmsh.y" +#line 2026 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} case 269: -#line 2022 "Gmsh.y" +#line 2027 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} case 270: -#line 2023 "Gmsh.y" +#line 2028 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} case 271: -#line 2024 "Gmsh.y" +#line 2029 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} case 272: -#line 2025 "Gmsh.y" +#line 2030 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 273: -#line 2026 "Gmsh.y" +#line 2031 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} case 274: -#line 2027 "Gmsh.y" +#line 2032 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} case 275: -#line 2028 "Gmsh.y" +#line 2033 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} case 276: -#line 2029 "Gmsh.y" +#line 2034 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} case 277: -#line 2030 "Gmsh.y" +#line 2035 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} case 278: -#line 2031 "Gmsh.y" +#line 2036 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} case 279: -#line 2032 "Gmsh.y" +#line 2037 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 280: -#line 2033 "Gmsh.y" +#line 2038 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 281: -#line 2034 "Gmsh.y" +#line 2039 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 282: -#line 2035 "Gmsh.y" +#line 2040 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} case 283: -#line 2044 "Gmsh.y" +#line 2049 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 284: -#line 2045 "Gmsh.y" +#line 2050 "Gmsh.y" { yyval.d = 3.141592653589793; ; break;} case 285: -#line 2046 "Gmsh.y" +#line 2051 "Gmsh.y" { yyval.d = ParUtil::Instance()->rank(); ; break;} case 286: -#line 2047 "Gmsh.y" +#line 2052 "Gmsh.y" { yyval.d = ParUtil::Instance()->size(); ; break;} case 287: -#line 2052 "Gmsh.y" +#line 2057 "Gmsh.y" { TheSymbol.Name = yyvsp[0].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5125,7 +5130,7 @@ case 287: ; break;} case 288: -#line 2063 "Gmsh.y" +#line 2068 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5143,7 +5148,7 @@ case 288: ; break;} case 289: -#line 2080 "Gmsh.y" +#line 2085 "Gmsh.y" { TheSymbol.Name = yyvsp[-1].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5155,7 +5160,7 @@ case 289: ; break;} case 290: -#line 2091 "Gmsh.y" +#line 2096 "Gmsh.y" { TheSymbol.Name = yyvsp[-4].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) { @@ -5173,7 +5178,7 @@ case 290: ; break;} case 291: -#line 2110 "Gmsh.y" +#line 2115 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c))){ vyyerror("Unknown numeric option class '%s'", yyvsp[-2].c); @@ -5190,7 +5195,7 @@ case 291: ; break;} case 292: -#line 2126 "Gmsh.y" +#line 2131 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))){ vyyerror("Unknown numeric option class '%s'", yyvsp[-5].c); @@ -5207,7 +5212,7 @@ case 292: ; break;} case 293: -#line 2142 "Gmsh.y" +#line 2147 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))){ vyyerror("Unknown numeric option class '%s'", yyvsp[-3].c); @@ -5224,7 +5229,7 @@ case 293: ; break;} case 294: -#line 2158 "Gmsh.y" +#line 2163 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-6].c))){ vyyerror("Unknown numeric option class '%s'", yyvsp[-6].c); @@ -5241,130 +5246,130 @@ case 294: ; break;} case 295: -#line 2176 "Gmsh.y" +#line 2181 "Gmsh.y" { memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)) ; ; break;} case 296: -#line 2180 "Gmsh.y" +#line 2185 "Gmsh.y" { for(i=0 ; i<5 ; i++) yyval.v[i] = -yyvsp[0].v[i] ; ; break;} case 297: -#line 2184 "Gmsh.y" +#line 2189 "Gmsh.y" { for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} case 298: -#line 2188 "Gmsh.y" +#line 2193 "Gmsh.y" { for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i] ; ; break;} case 299: -#line 2192 "Gmsh.y" +#line 2197 "Gmsh.y" { for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i] ; ; break;} case 300: -#line 2198 "Gmsh.y" +#line 2203 "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 301: -#line 2202 "Gmsh.y" +#line 2207 "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 302: -#line 2206 "Gmsh.y" +#line 2211 "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 303: -#line 2210 "Gmsh.y" +#line 2215 "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 304: -#line 2217 "Gmsh.y" +#line 2222 "Gmsh.y" { ; break;} case 305: -#line 2220 "Gmsh.y" +#line 2225 "Gmsh.y" { ; break;} case 306: -#line 2226 "Gmsh.y" +#line 2231 "Gmsh.y" { ; break;} case 307: -#line 2229 "Gmsh.y" +#line 2234 "Gmsh.y" { ; break;} case 308: -#line 2235 "Gmsh.y" +#line 2240 "Gmsh.y" { ; break;} case 309: -#line 2238 "Gmsh.y" +#line 2243 "Gmsh.y" { yyval.l=yyvsp[-1].l; ; break;} case 310: -#line 2242 "Gmsh.y" +#line 2247 "Gmsh.y" { yyval.l=yyvsp[-1].l; ; break;} case 311: -#line 2249 "Gmsh.y" +#line 2254 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(List_T*)) ; List_Add(yyval.l, &(yyvsp[0].l)) ; ; break;} case 312: -#line 2254 "Gmsh.y" +#line 2259 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].l)) ; ; break;} case 313: -#line 2262 "Gmsh.y" +#line 2267 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; List_Add(yyval.l, &(yyvsp[0].d)) ; ; break;} case 314: -#line 2267 "Gmsh.y" +#line 2272 "Gmsh.y" { yyval.l = yyvsp[0].l ; ; break;} case 315: -#line 2271 "Gmsh.y" +#line 2276 "Gmsh.y" { yyval.l=yyvsp[-1].l; ; break;} case 316: -#line 2275 "Gmsh.y" +#line 2280 "Gmsh.y" { yyval.l=yyvsp[-1].l; for(i=0 ; i<List_Nbr(yyval.l) ; i++){ @@ -5374,7 +5379,7 @@ case 316: ; break;} case 317: -#line 2286 "Gmsh.y" +#line 2291 "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.)) @@ -5382,7 +5387,7 @@ case 317: ; break;} case 318: -#line 2292 "Gmsh.y" +#line 2297 "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)){ @@ -5395,7 +5400,7 @@ case 318: ; break;} case 319: -#line 2303 "Gmsh.y" +#line 2308 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; TheSymbol.Name = yyvsp[-2].c ; @@ -5411,7 +5416,7 @@ case 319: ; break;} case 320: -#line 2317 "Gmsh.y" +#line 2322 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; TheSymbol.Name = yyvsp[-2].c ; @@ -5429,7 +5434,7 @@ case 320: ; break;} case 321: -#line 2333 "Gmsh.y" +#line 2338 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; TheSymbol.Name = yyvsp[-5].c ; @@ -5451,7 +5456,7 @@ case 321: ; break;} case 322: -#line 2353 "Gmsh.y" +#line 2358 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; TheSymbol.Name = yyvsp[-5].c ; @@ -5475,26 +5480,26 @@ case 322: ; break;} case 323: -#line 2378 "Gmsh.y" +#line 2383 "Gmsh.y" { yyval.l = List_Create(2,1,sizeof(double)) ; List_Add(yyval.l, &(yyvsp[0].d)) ; ; break;} case 324: -#line 2383 "Gmsh.y" +#line 2388 "Gmsh.y" { yyval.l = yyvsp[0].l ; ; break;} case 325: -#line 2387 "Gmsh.y" +#line 2392 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].d)) ; ; break;} case 326: -#line 2391 "Gmsh.y" +#line 2396 "Gmsh.y" { for(i=0 ; i<List_Nbr(yyvsp[0].l) ; i++){ List_Read(yyvsp[0].l, i, &d) ; @@ -5504,26 +5509,26 @@ case 326: ; break;} case 327: -#line 2403 "Gmsh.y" +#line 2408 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d); ; break;} case 328: -#line 2407 "Gmsh.y" +#line 2412 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} case 329: -#line 2418 "Gmsh.y" +#line 2423 "Gmsh.y" { yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); if(flag) vyyerror("Unknown color '%s'", yyvsp[0].c); ; break;} case 330: -#line 2423 "Gmsh.y" +#line 2428 "Gmsh.y" { if(!(pColCat = Get_ColorOptionCategory(yyvsp[-4].c))){ vyyerror("Unknown color option class '%s'", yyvsp[-4].c); @@ -5541,13 +5546,13 @@ case 330: ; break;} case 331: -#line 2442 "Gmsh.y" +#line 2447 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 332: -#line 2446 "Gmsh.y" +#line 2451 "Gmsh.y" { yyval.l = List_Create(256,10,sizeof(unsigned int)) ; ColorTable *ct = Get_ColorTable((int)yyvsp[-3].d); @@ -5560,26 +5565,26 @@ case 332: ; break;} case 333: -#line 2460 "Gmsh.y" +#line 2465 "Gmsh.y" { yyval.l = List_Create(256,10,sizeof(unsigned int)) ; List_Add(yyval.l, &(yyvsp[0].u)) ; ; break;} case 334: -#line 2465 "Gmsh.y" +#line 2470 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].u)) ; ; break;} case 335: -#line 2472 "Gmsh.y" +#line 2477 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} case 336: -#line 2476 "Gmsh.y" +#line 2481 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)) ; strcpy(yyval.c, yyvsp[-3].c) ; @@ -5589,7 +5594,7 @@ case 336: ; break;} case 337: -#line 2484 "Gmsh.y" +#line 2489 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)) ; for(i=strlen(yyvsp[-1].c)-1; i>=0; i--){ @@ -5604,13 +5609,13 @@ case 337: ; break;} case 338: -#line 2497 "Gmsh.y" +#line 2502 "Gmsh.y" { yyval.c = yyvsp[-1].c; ; break;} case 339: -#line 2501 "Gmsh.y" +#line 2506 "Gmsh.y" { for(i = 0 ; i<List_Nbr(yyvsp[-1].l) ; i++){ if(!i){ @@ -5637,7 +5642,7 @@ case 339: ; break;} case 340: -#line 2526 "Gmsh.y" +#line 2531 "Gmsh.y" { if(!(pStrCat = Get_StringOptionCategory(yyvsp[-3].c))) vyyerror("Unknown string option class '%s'", yyvsp[-3].c); @@ -5653,7 +5658,7 @@ case 340: ; break;} case 341: -#line 2540 "Gmsh.y" +#line 2545 "Gmsh.y" { if(!(pStrCat = Get_StringOptionCategory(yyvsp[-6].c))) vyyerror("Unknown string option class '%s'", yyvsp[-6].c); @@ -5890,7 +5895,7 @@ yyerrhandle: } return 1; } -#line 2555 "Gmsh.y" +#line 2560 "Gmsh.y" void InitSymbols(void){ diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 50c082ddc6532be45300ccb891da7ee43c2f8203..c579ba3b4912a7b04aa37eb3f6750573b1fc7827 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,6 +1,6 @@ %{ -// $Id: Gmsh.y,v 1.93 2001-08-13 16:13:14 geuzaine Exp $ +// $Id: Gmsh.y,v 1.94 2001-08-13 18:38:56 geuzaine Exp $ // // Generaliser sprintf avec des chaines de caracteres @@ -1232,9 +1232,14 @@ Shape : } | tBSpline '(' FExpr ')' tAFFECT ListOfDouble tEND { - Cdbseg101((int)$3,MSH_SEGM_BSPLN,2,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); - $$.Type = MSH_SEGM_BSPLN; - $$.Num = (int)$3; + if(List_Nbr($6) > 3){ + Cdbseg101((int)$3,MSH_SEGM_BSPLN,2,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); + $$.Type = MSH_SEGM_BSPLN; + $$.Num = (int)$3; + } + else + vyyerror("Too few control points for BSpline %d (%d < 4)", (int)$3, + List_Nbr($6)); } | tNurbs '(' FExpr ')' tAFFECT ListOfDouble tKnots ListOfDouble tOrder FExpr tEND { diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 39e72f27feeebbf1edcad8c1fa95ee6d8d433bc9..df6f2ae361a8e228b3249331f25c0fb8708abc4a 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.107 2001-08-13 16:13:14 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.108 2001-08-13 18:38:56 geuzaine Exp $ */ #define FLEX_SCANNER @@ -995,7 +995,7 @@ char *yytext; #define INITIAL 0 #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.107 2001-08-13 16:13:14 geuzaine Exp $ +// $Id: Gmsh.yy.cpp,v 1.108 2001-08-13 18:38:56 geuzaine Exp $ #include <stdio.h> #include <stdlib.h> diff --git a/demos/.gmsh-options b/demos/.gmsh-options index 7e5388245b538cee4f299543a6b0937b99ab4d4c..285e249a0dfe169515e6ee5739b268edcd3b4bf1 100644 --- a/demos/.gmsh-options +++ b/demos/.gmsh-options @@ -3,7 +3,7 @@ // This file takes configuration options (preferences) that // should be loaded each time Gmsh is launched. You can create // this file by hand, or let Gmsh generate it for you (with -// the 'Options->Save options' menu button). This file can +// the 'Options->Save options now' menu button). This file can // also be automatically regenerated every time you quit // Gmsh if the option 'General.SaveOptions' is set. If // this file isn't found, defaults are used. @@ -27,7 +27,7 @@ General.DisplayLists = 0; // Use OpenGL display lists (useful with real time man General.AlphaBlending = 0; // Enable alpha blending (transparency) in post-processing views General.Trackball = 1; // Use trackball rotation mode General.ZoomFactor = 1.1; // 'Speed' of the middle mouse button zoom -General.DefaultPlugins = 0; // Load default plugins on startup +General.DefaultPlugins = 1; // Load default plugins on startup General.MovingLight = 0; // Use a moving (i.e. which follows the model) light source General.Light0 = 1; // Enable light source 0 General.Light0X = 0.5; // X position of light source 0 @@ -68,7 +68,7 @@ Geometry.Lines = 1; // Display geometry curves? Geometry.Surfaces = 0; // Display geometry surfaces? Geometry.Volumes = 0; // Display geometry volumes? (not implemented yet) Geometry.PointsNumbers = 1; // Display points numbers? -Geometry.LinesNumbers = 0; // Display curve numbers? +Geometry.LinesNumbers = 1; // Display curve numbers? Geometry.SurfacesNumbers = 0; // Display surface numbers? Geometry.VolumesNumbers = 0; // Display volume numbers? (not implemented yet) Geometry.Aspect = 0; // Not used @@ -156,7 +156,7 @@ Solver.GetDPMergeViews = 1; // Automatically merge any post-processing view crea // Post-processing options // PostProcessing.Scales = 1; // Show value scales -PostProcessing.Link = 0; // Link post-processing views (0=no, 1=visible views, 2=all views) +PostProcessing.Link = 0; // Link post-processing views (0=none, 1,2=changes in visible/all, 3,4=everything in visible/all) PostProcessing.Smoothing = 0; // Apply (non-reversible) smoothing to post-processing view when merged PostProcessing.AnimationDelay = 0.25; // Delay (in seconds) between to animation frames // @@ -164,9 +164,13 @@ PostProcessing.AnimationDelay = 0.25; // Delay (in seconds) between to animation // View.Format = "%.3e"; // Number format (in standard C form) View.ArrowScale = 50; // Size of the vector (e.g. arrow size in pixels) -View.IntervalsType = 2; // Type of interval display (1=iso, 2=discrete, 3=continuous, 4=numeric) +View.Explode = 1; // Explode elements (0: reduced to point; 1: not transformed) +View.IntervalsType = 2; // Type of interval display (1=iso, 2=continuous, 3=discrete, 4=numeric) +View.SaturateValues = 0; // Saturate the view values to custom min and max (1=true, 0=false) View.NbIso = 15; // Number of intervals +View.Boundary = 0; // Draw the N-b dimensional boundary of the simplex (N=dimension, b=option value) View.Light = 0; // Enable light sources? +View.SmoothNormals = 0; // Smooth the normals? View.ShowElement = 0; // Show element boundaries? View.ShowTime = 1; // Show time value (or time step) if NbTimeStep > 1? View.ShowScale = 1; // Show value scale? @@ -178,7 +182,7 @@ View.DrawScalars = 1; // Display scalar values? View.DrawVectors = 1; // Display vector values? View.DrawTensors = 1; // Display tensor values? View.TransparentScale = 1; // Display a 'transparent' value scale? -View.ScaleType = 1; // Value scale type (1=linear, 2=logarithmic) +View.ScaleType = 1; // Value scale type (1=linear, 2=logarithmic, 3=double logarithmic) View.RangeType = 1; // Value scale range type (1=default, 2=custom) View.ArrowType = 2; // Vector display type (1=segment, 2=arrow, 3=pyramid, 4=cone, 5=displacement) View.ArrowLocation = 1; // Arrow location (1=cog, 2=vertex) @@ -254,9 +258,13 @@ View.ColorTable = { Print.Font = "Courier"; // Font used for postscript printing Print.Format = 10; // Print format Print.EpsQuality = 2; // Postscript quality (1=simple sort, 2=recursive sort) +Print.EpsBackground = 0; // Save image background in postscript output Print.JpegQuality = 85; // JPEG quality (between 1 and 100) Print.GifDither = 0; // Apply dithering to GIF output Print.GifSort = 1; // Sort the colormap in GIF output Print.GifInterlace = 0; // Interlace GIF output Print.GifTransparent = 0; // Output transparent GIF image Print.FontSize = 12; // Font size used for postscript printing +Print.GeometryLineWidth = 8; // Width factor for geometry lines in postscript output (10 looks nice for geometry+mesh display) +Print.MeshLineWidth = 1; // Width factor for mesh lines in postscript output (1 looks nice for geometry+mesh display) +Print.PostProcessingLineWidth = 2; // Width factor for post-processing lines in postscript output diff --git a/www/gmsh.html b/www/gmsh.html index d67e75dfc03cdf93d09ed9bef917e2c6f340f035..151ac5050f00f868ef0a1712e7f3255bbfe23ebd 100644 --- a/www/gmsh.html +++ b/www/gmsh.html @@ -46,7 +46,7 @@ cat << EOM page requests since<br>1998/05/24<p> ENDSCRIPT---> -<!---BEGINDATE$Date: 2001-08-03 16:03:00 $ENDDATE---> +<!---BEGINDATE$Date: 2001-08-13 18:38:56 $ENDDATE---> Copyright © 1998-2001<br> Jean-Fran�ois Remacle and @@ -324,7 +324,7 @@ ENDSCRIPT---> <td bgcolor="#ededed"><font face="Helvetica, Arial" size=-1> -<b>Version 1.22 (August 3, 2001)</b> +<b>Version 1.23 (August 13, 2001)</b> <p> Executable versions of Gmsh are available for Windows and for most of the classical UNIX platforms. These versions are free, and are all @@ -333,14 +333,14 @@ name="opengl-footmark"><sup>1</sup></a>. The only thing required if you use Gmsh is to mention it in your work. The tutorial and demo files are included in the archives. <ul> -<li><A href="/gmsh/bin/gmsh-1.22-Windows.zip">Windows zip archive (95/98/NT)</A> -<li><A href="/gmsh/bin/gmsh-1.22-1.i386.rpm">Linux RPM (Red Hat 6.2 and compatible, i386, glibc 2.1)</A> -<li><A href="/gmsh/bin/gmsh-1.22-Linux.tgz">Linux tarball (i386, glibc 2.1)</A> -<li><A href="/gmsh/bin/gmsh-1.22-OSF1.tgz">Compaq Tru64 tarball (OSF 4.0)</A> -<li><A href="/gmsh/bin/gmsh-1.22-SunOS.tgz">Sun tarball (SunOS 5.5)</A> -<li><A href="/gmsh/bin/gmsh-1.22-AIX.tgz">IBM tarball (AIX)</A> -<li><A href="/gmsh/bin/gmsh-1.22-IRIX.tgz">SGI IRIX tarball (IRIX 6.5)</A> -<li><A href="/gmsh/bin/gmsh-1.22-HP-UX.tgz">HP tarball (HPUX 10.20)</A> +<li><A href="/gmsh/bin/gmsh-1.23-Windows.zip">Windows zip archive (95/98/NT)</A> +<li><A href="/gmsh/bin/gmsh-1.23-1.i386.rpm">Linux RPM (Red Hat 6.2 and compatible, i386, glibc 2.1)</A> +<li><A href="/gmsh/bin/gmsh-1.23-Linux.tgz">Linux tarball (i386, glibc 2.1)</A> +<li><A href="/gmsh/bin/gmsh-1.23-OSF1.tgz">Compaq Tru64 tarball (OSF 4.0)</A> +<li><A href="/gmsh/bin/gmsh-1.23-SunOS.tgz">Sun tarball (SunOS 5.5)</A> +<li><A href="/gmsh/bin/gmsh-1.23-AIX.tgz">IBM tarball (AIX)</A> +<li><A href="/gmsh/bin/gmsh-1.23-IRIX.tgz">SGI IRIX tarball (IRIX 6.5)</A> +<li><A href="/gmsh/bin/gmsh-1.23-HP-UX.tgz">HP tarball (HPUX 10.20)</A> </ul>