diff --git a/Common/Options.cpp b/Common/Options.cpp index 60482a477291d9e14002a3da863d93df09985a39..be05873b73856a06eb19232a726226da11d0ed46 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -426,7 +426,11 @@ void ReInitOptions(int num) #if defined(HAVE_POST) std::vector<PView*> tmp = PView::list; PView::list.clear(); +#endif + InitOptions(num); + +#if defined(HAVE_POST) PView::list = tmp; for(unsigned int i = 0; i < PView::list.size(); i++) PView::list[i]->setOptions(); diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 934ae1b84430641dbe233d205a898f6077908e14..b6337219f4b6d535b54881a538d66881ade9b982 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -1033,30 +1033,30 @@ static const yytype_uint16 yyrline[] = 1476, 1504, 1521, 1541, 1559, 1577, 1592, 1591, 1617, 1622, 1627, 1632, 1637, 1657, 1663, 1674, 1675, 1680, 1683, 1687, 1710, 1733, 1756, 1784, 1805, 1826, 1848, 1868, 1980, 1999, - 2013, 2122, 2131, 2137, 2152, 2176, 2193, 2207, 2213, 2219, - 2228, 2242, 2282, 2299, 2314, 2333, 2345, 2369, 2373, 2380, - 2386, 2391, 2397, 2407, 2424, 2441, 2460, 2479, 2509, 2517, - 2523, 2530, 2534, 2543, 2551, 2559, 2568, 2567, 2580, 2579, - 2592, 2591, 2604, 2603, 2616, 2623, 2630, 2637, 2644, 2651, - 2658, 2665, 2672, 2680, 2679, 2691, 2690, 2702, 2701, 2713, - 2712, 2724, 2723, 2735, 2734, 2746, 2745, 2757, 2756, 2768, - 2767, 2782, 2785, 2791, 2800, 2820, 2843, 2847, 2871, 2874, - 2890, 2893, 2906, 2909, 2915, 2918, 2925, 2981, 3051, 3056, - 3123, 3166, 3192, 3215, 3238, 3241, 3250, 3254, 3271, 3304, - 3338, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, - 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, - 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, - 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, - 3421, 3422, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, - 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, - 3442, 3443, 3444, 3453, 3454, 3455, 3456, 3457, 3458, 3459, - 3463, 3476, 3488, 3503, 3513, 3523, 3541, 3546, 3551, 3561, - 3571, 3579, 3583, 3587, 3591, 3595, 3602, 3606, 3610, 3614, - 3621, 3626, 3633, 3638, 3642, 3647, 3651, 3659, 3670, 3674, - 3686, 3694, 3702, 3709, 3720, 3740, 3750, 3760, 3770, 3790, - 3795, 3799, 3803, 3815, 3819, 3831, 3838, 3848, 3852, 3867, - 3872, 3879, 3883, 3896, 3904, 3915, 3919, 3927, 3935, 3949, - 3963, 3967 + 2013, 2122, 2131, 2137, 2152, 2180, 2197, 2211, 2217, 2223, + 2232, 2246, 2286, 2303, 2318, 2337, 2349, 2373, 2377, 2384, + 2390, 2395, 2401, 2411, 2428, 2445, 2464, 2483, 2513, 2521, + 2527, 2534, 2538, 2547, 2555, 2563, 2572, 2571, 2584, 2583, + 2596, 2595, 2608, 2607, 2620, 2627, 2634, 2641, 2648, 2655, + 2662, 2669, 2676, 2684, 2683, 2695, 2694, 2706, 2705, 2717, + 2716, 2728, 2727, 2739, 2738, 2750, 2749, 2761, 2760, 2772, + 2771, 2786, 2789, 2795, 2804, 2824, 2847, 2851, 2875, 2878, + 2894, 2897, 2910, 2913, 2919, 2922, 2929, 2985, 3055, 3060, + 3127, 3170, 3196, 3219, 3242, 3245, 3254, 3258, 3275, 3308, + 3342, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, + 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, + 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, + 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, + 3425, 3426, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, + 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, + 3446, 3447, 3448, 3457, 3458, 3459, 3460, 3461, 3462, 3463, + 3467, 3480, 3492, 3507, 3517, 3527, 3545, 3550, 3555, 3565, + 3575, 3583, 3587, 3591, 3595, 3599, 3606, 3610, 3614, 3618, + 3625, 3630, 3637, 3642, 3646, 3651, 3655, 3663, 3674, 3678, + 3690, 3698, 3706, 3713, 3724, 3744, 3754, 3764, 3774, 3794, + 3799, 3803, 3807, 3819, 3823, 3835, 3842, 3852, 3856, 3871, + 3876, 3883, 3887, 3900, 3908, 3919, 3923, 3931, 3939, 3953, + 3967, 3971 }; #endif @@ -6155,6 +6155,10 @@ yyreduce: else if(!strcmp((yyvsp[(2) - (3)].c), "Variables")){ gmsh_yysymbols.clear(); } + else if(!strcmp((yyvsp[(2) - (3)].c), "Options")){ + ReInitOptions(0); + InitOptionsGUI(0); + } else{ if(gmsh_yysymbols.count((yyvsp[(2) - (3)].c))) gmsh_yysymbols.erase((yyvsp[(2) - (3)].c)); @@ -6166,7 +6170,7 @@ yyreduce: break; case 155: -#line 2177 "Gmsh.y" +#line 2181 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -6181,7 +6185,7 @@ yyreduce: break; case 156: -#line 2194 "Gmsh.y" +#line 2198 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -6193,7 +6197,7 @@ yyreduce: break; case 157: -#line 2208 "Gmsh.y" +#line 2212 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1); @@ -6202,7 +6206,7 @@ yyreduce: break; case 158: -#line 2214 "Gmsh.y" +#line 2218 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0); @@ -6211,7 +6215,7 @@ yyreduce: break; case 159: -#line 2220 "Gmsh.y" +#line 2224 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -6223,7 +6227,7 @@ yyreduce: break; case 160: -#line 2229 "Gmsh.y" +#line 2233 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -6235,7 +6239,7 @@ yyreduce: break; case 161: -#line 2243 "Gmsh.y" +#line 2247 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(2) - (3)].c)); @@ -6278,7 +6282,7 @@ yyreduce: break; case 162: -#line 2283 "Gmsh.y" +#line 2287 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -6298,7 +6302,7 @@ yyreduce: break; case 163: -#line 2300 "Gmsh.y" +#line 2304 "Gmsh.y" { #if defined(HAVE_POST) && defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -6316,7 +6320,7 @@ yyreduce: break; case 164: -#line 2315 "Gmsh.y" +#line 2319 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -6338,7 +6342,7 @@ yyreduce: break; case 165: -#line 2334 "Gmsh.y" +#line 2338 "Gmsh.y" { #if defined(HAVE_POST) try { @@ -6353,7 +6357,7 @@ yyreduce: break; case 166: -#line 2346 "Gmsh.y" +#line 2350 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -6380,14 +6384,14 @@ yyreduce: break; case 167: -#line 2370 "Gmsh.y" +#line 2374 "Gmsh.y" { exit(0); ;} break; case 168: -#line 2374 "Gmsh.y" +#line 2378 "Gmsh.y" { // FIXME: this is a hack to force a transfer from the old DB to // the new DB. This will become unnecessary if/when we fill the @@ -6397,7 +6401,7 @@ yyreduce: break; case 169: -#line 2381 "Gmsh.y" +#line 2385 "Gmsh.y" { CTX::instance()->forcedBBox = 0; GModel::current()->importGEOInternals(); @@ -6406,7 +6410,7 @@ yyreduce: break; case 170: -#line 2387 "Gmsh.y" +#line 2391 "Gmsh.y" { CTX::instance()->forcedBBox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); @@ -6414,7 +6418,7 @@ yyreduce: break; case 171: -#line 2392 "Gmsh.y" +#line 2396 "Gmsh.y" { #if defined(HAVE_OPENGL) drawContext::global()->draw(); @@ -6423,14 +6427,14 @@ yyreduce: break; case 172: -#line 2398 "Gmsh.y" +#line 2402 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; case 173: -#line 2408 "Gmsh.y" +#line 2412 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -6450,7 +6454,7 @@ yyreduce: break; case 174: -#line 2425 "Gmsh.y" +#line 2429 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -6470,7 +6474,7 @@ yyreduce: break; case 175: -#line 2442 "Gmsh.y" +#line 2446 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -6492,7 +6496,7 @@ yyreduce: break; case 176: -#line 2461 "Gmsh.y" +#line 2465 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -6514,7 +6518,7 @@ yyreduce: break; case 177: -#line 2480 "Gmsh.y" +#line 2484 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -6547,7 +6551,7 @@ yyreduce: break; case 178: -#line 2510 "Gmsh.y" +#line 2514 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction ((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6558,7 +6562,7 @@ yyreduce: break; case 179: -#line 2518 "Gmsh.y" +#line 2522 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6567,7 +6571,7 @@ yyreduce: break; case 180: -#line 2524 "Gmsh.y" +#line 2528 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction ((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6577,20 +6581,20 @@ yyreduce: break; case 181: -#line 2531 "Gmsh.y" +#line 2535 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); ;} break; case 182: -#line 2535 "Gmsh.y" +#line 2539 "Gmsh.y" { ;} break; case 183: -#line 2544 "Gmsh.y" +#line 2548 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -6601,7 +6605,7 @@ yyreduce: break; case 184: -#line 2552 "Gmsh.y" +#line 2556 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -6612,7 +6616,7 @@ yyreduce: break; case 185: -#line 2560 "Gmsh.y" +#line 2564 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -6623,14 +6627,14 @@ yyreduce: break; case 186: -#line 2568 "Gmsh.y" +#line 2572 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 187: -#line 2572 "Gmsh.y" +#line 2576 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -6641,14 +6645,14 @@ yyreduce: break; case 188: -#line 2580 "Gmsh.y" +#line 2584 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 189: -#line 2584 "Gmsh.y" +#line 2588 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -6659,14 +6663,14 @@ yyreduce: break; case 190: -#line 2592 "Gmsh.y" +#line 2596 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 191: -#line 2596 "Gmsh.y" +#line 2600 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -6677,14 +6681,14 @@ yyreduce: break; case 192: -#line 2604 "Gmsh.y" +#line 2608 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 193: -#line 2608 "Gmsh.y" +#line 2612 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -6694,7 +6698,7 @@ yyreduce: break; case 194: -#line 2617 "Gmsh.y" +#line 2621 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -6704,7 +6708,7 @@ yyreduce: break; case 195: -#line 2624 "Gmsh.y" +#line 2628 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -6714,7 +6718,7 @@ yyreduce: break; case 196: -#line 2631 "Gmsh.y" +#line 2635 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -6724,7 +6728,7 @@ yyreduce: break; case 197: -#line 2638 "Gmsh.y" +#line 2642 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6734,7 +6738,7 @@ yyreduce: break; case 198: -#line 2645 "Gmsh.y" +#line 2649 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6744,7 +6748,7 @@ yyreduce: break; case 199: -#line 2652 "Gmsh.y" +#line 2656 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6754,7 +6758,7 @@ yyreduce: break; case 200: -#line 2659 "Gmsh.y" +#line 2663 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -6764,7 +6768,7 @@ yyreduce: break; case 201: -#line 2666 "Gmsh.y" +#line 2670 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -6774,7 +6778,7 @@ yyreduce: break; case 202: -#line 2673 "Gmsh.y" +#line 2677 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -6784,14 +6788,14 @@ yyreduce: break; case 203: -#line 2680 "Gmsh.y" +#line 2684 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 204: -#line 2684 "Gmsh.y" +#line 2688 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6801,14 +6805,14 @@ yyreduce: break; case 205: -#line 2691 "Gmsh.y" +#line 2695 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 206: -#line 2695 "Gmsh.y" +#line 2699 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6818,14 +6822,14 @@ yyreduce: break; case 207: -#line 2702 "Gmsh.y" +#line 2706 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 208: -#line 2706 "Gmsh.y" +#line 2710 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6835,14 +6839,14 @@ yyreduce: break; case 209: -#line 2713 "Gmsh.y" +#line 2717 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 210: -#line 2717 "Gmsh.y" +#line 2721 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -6852,14 +6856,14 @@ yyreduce: break; case 211: -#line 2724 "Gmsh.y" +#line 2728 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 212: -#line 2728 "Gmsh.y" +#line 2732 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -6869,14 +6873,14 @@ yyreduce: break; case 213: -#line 2735 "Gmsh.y" +#line 2739 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 214: -#line 2739 "Gmsh.y" +#line 2743 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -6886,14 +6890,14 @@ yyreduce: break; case 215: -#line 2746 "Gmsh.y" +#line 2750 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 216: -#line 2750 "Gmsh.y" +#line 2754 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -6903,14 +6907,14 @@ yyreduce: break; case 217: -#line 2757 "Gmsh.y" +#line 2761 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 218: -#line 2761 "Gmsh.y" +#line 2765 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -6920,14 +6924,14 @@ yyreduce: break; case 219: -#line 2768 "Gmsh.y" +#line 2772 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 220: -#line 2772 "Gmsh.y" +#line 2776 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -6937,19 +6941,19 @@ yyreduce: break; case 221: -#line 2783 "Gmsh.y" +#line 2787 "Gmsh.y" { ;} break; case 222: -#line 2786 "Gmsh.y" +#line 2790 "Gmsh.y" { ;} break; case 223: -#line 2792 "Gmsh.y" +#line 2796 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -6961,7 +6965,7 @@ yyreduce: break; case 224: -#line 2801 "Gmsh.y" +#line 2805 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -6984,7 +6988,7 @@ yyreduce: break; case 225: -#line 2821 "Gmsh.y" +#line 2825 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -7010,14 +7014,14 @@ yyreduce: break; case 226: -#line 2844 "Gmsh.y" +#line 2848 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; case 227: -#line 2848 "Gmsh.y" +#line 2852 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -7039,14 +7043,14 @@ yyreduce: break; case 228: -#line 2871 "Gmsh.y" +#line 2875 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; case 229: -#line 2875 "Gmsh.y" +#line 2879 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -7062,14 +7066,14 @@ yyreduce: break; case 230: -#line 2890 "Gmsh.y" +#line 2894 "Gmsh.y" { (yyval.i) = -1; // left ;} break; case 231: -#line 2894 "Gmsh.y" +#line 2898 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -7082,35 +7086,35 @@ yyreduce: break; case 232: -#line 2906 "Gmsh.y" +#line 2910 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; case 233: -#line 2910 "Gmsh.y" +#line 2914 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; case 234: -#line 2915 "Gmsh.y" +#line 2919 "Gmsh.y" { (yyval.i) = 45; ;} break; case 235: -#line 2919 "Gmsh.y" +#line 2923 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; case 236: -#line 2926 "Gmsh.y" +#line 2930 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -7169,7 +7173,7 @@ yyreduce: break; case 237: -#line 2982 "Gmsh.y" +#line 2986 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -7242,7 +7246,7 @@ yyreduce: break; case 238: -#line 3052 "Gmsh.y" +#line 3056 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); @@ -7250,7 +7254,7 @@ yyreduce: break; case 239: -#line 3057 "Gmsh.y" +#line 3061 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -7320,7 +7324,7 @@ yyreduce: break; case 240: -#line 3124 "Gmsh.y" +#line 3128 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -7366,7 +7370,7 @@ yyreduce: break; case 241: -#line 3167 "Gmsh.y" +#line 3171 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -7389,7 +7393,7 @@ yyreduce: break; case 242: -#line 3193 "Gmsh.y" +#line 3197 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -7415,7 +7419,7 @@ yyreduce: break; case 243: -#line 3216 "Gmsh.y" +#line 3220 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -7441,26 +7445,26 @@ yyreduce: break; case 244: -#line 3239 "Gmsh.y" +#line 3243 "Gmsh.y" { ;} break; case 245: -#line 3242 "Gmsh.y" +#line 3246 "Gmsh.y" { ;} break; case 246: -#line 3251 "Gmsh.y" +#line 3255 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; case 247: -#line 3255 "Gmsh.y" +#line 3259 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -7473,7 +7477,7 @@ yyreduce: break; case 248: -#line 3272 "Gmsh.y" +#line 3276 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(3) - (7)].l)); @@ -7508,7 +7512,7 @@ yyreduce: break; case 249: -#line 3305 "Gmsh.y" +#line 3309 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); std::vector<int> domain; @@ -7544,7 +7548,7 @@ yyreduce: break; case 250: -#line 3339 "Gmsh.y" +#line 3343 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); std::vector<int> domain; @@ -7580,47 +7584,47 @@ yyreduce: break; case 251: -#line 3376 "Gmsh.y" +#line 3380 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 252: -#line 3377 "Gmsh.y" +#line 3381 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; case 253: -#line 3378 "Gmsh.y" +#line 3382 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; case 254: -#line 3379 "Gmsh.y" +#line 3383 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 255: -#line 3380 "Gmsh.y" +#line 3384 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; case 256: -#line 3381 "Gmsh.y" +#line 3385 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; case 257: -#line 3382 "Gmsh.y" +#line 3386 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; case 258: -#line 3383 "Gmsh.y" +#line 3387 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; case 259: -#line 3385 "Gmsh.y" +#line 3389 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -7630,307 +7634,307 @@ yyreduce: break; case 260: -#line 3391 "Gmsh.y" +#line 3395 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 261: -#line 3392 "Gmsh.y" +#line 3396 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 262: -#line 3393 "Gmsh.y" +#line 3397 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 263: -#line 3394 "Gmsh.y" +#line 3398 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 264: -#line 3395 "Gmsh.y" +#line 3399 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 265: -#line 3396 "Gmsh.y" +#line 3400 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 266: -#line 3397 "Gmsh.y" +#line 3401 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 267: -#line 3398 "Gmsh.y" +#line 3402 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 268: -#line 3399 "Gmsh.y" +#line 3403 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 269: -#line 3400 "Gmsh.y" +#line 3404 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 270: -#line 3401 "Gmsh.y" +#line 3405 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 271: -#line 3402 "Gmsh.y" +#line 3406 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 272: -#line 3403 "Gmsh.y" +#line 3407 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 273: -#line 3404 "Gmsh.y" +#line 3408 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 274: -#line 3405 "Gmsh.y" +#line 3409 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 275: -#line 3406 "Gmsh.y" +#line 3410 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 276: -#line 3407 "Gmsh.y" +#line 3411 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 277: -#line 3408 "Gmsh.y" +#line 3412 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 278: -#line 3409 "Gmsh.y" +#line 3413 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 279: -#line 3410 "Gmsh.y" +#line 3414 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 280: -#line 3411 "Gmsh.y" +#line 3415 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 281: -#line 3412 "Gmsh.y" +#line 3416 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 282: -#line 3413 "Gmsh.y" +#line 3417 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 283: -#line 3414 "Gmsh.y" +#line 3418 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 284: -#line 3415 "Gmsh.y" +#line 3419 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 285: -#line 3416 "Gmsh.y" +#line 3420 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 286: -#line 3417 "Gmsh.y" +#line 3421 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 287: -#line 3418 "Gmsh.y" +#line 3422 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 288: -#line 3419 "Gmsh.y" +#line 3423 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 289: -#line 3420 "Gmsh.y" +#line 3424 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 290: -#line 3421 "Gmsh.y" +#line 3425 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 291: -#line 3422 "Gmsh.y" +#line 3426 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 292: -#line 3424 "Gmsh.y" +#line 3428 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 293: -#line 3425 "Gmsh.y" +#line 3429 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 294: -#line 3426 "Gmsh.y" +#line 3430 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 295: -#line 3427 "Gmsh.y" +#line 3431 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 296: -#line 3428 "Gmsh.y" +#line 3432 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 297: -#line 3429 "Gmsh.y" +#line 3433 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 298: -#line 3430 "Gmsh.y" +#line 3434 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 299: -#line 3431 "Gmsh.y" +#line 3435 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 300: -#line 3432 "Gmsh.y" +#line 3436 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 301: -#line 3433 "Gmsh.y" +#line 3437 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 302: -#line 3434 "Gmsh.y" +#line 3438 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 303: -#line 3435 "Gmsh.y" +#line 3439 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 304: -#line 3436 "Gmsh.y" +#line 3440 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 305: -#line 3437 "Gmsh.y" +#line 3441 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 306: -#line 3438 "Gmsh.y" +#line 3442 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 307: -#line 3439 "Gmsh.y" +#line 3443 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 308: -#line 3440 "Gmsh.y" +#line 3444 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 309: -#line 3441 "Gmsh.y" +#line 3445 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 310: -#line 3442 "Gmsh.y" +#line 3446 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 311: -#line 3443 "Gmsh.y" +#line 3447 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 312: -#line 3444 "Gmsh.y" +#line 3448 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 313: -#line 3453 "Gmsh.y" +#line 3457 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 314: -#line 3454 "Gmsh.y" +#line 3458 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; case 315: -#line 3455 "Gmsh.y" +#line 3459 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; case 316: -#line 3456 "Gmsh.y" +#line 3460 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; case 317: -#line 3457 "Gmsh.y" +#line 3461 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; case 318: -#line 3458 "Gmsh.y" +#line 3462 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; case 319: -#line 3459 "Gmsh.y" +#line 3463 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; case 320: -#line 3464 "Gmsh.y" +#line 3468 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7943,7 +7947,7 @@ yyreduce: break; case 321: -#line 3477 "Gmsh.y" +#line 3481 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -7958,7 +7962,7 @@ yyreduce: break; case 322: -#line 3489 "Gmsh.y" +#line 3493 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -7976,7 +7980,7 @@ yyreduce: break; case 323: -#line 3504 "Gmsh.y" +#line 3508 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -7989,7 +7993,7 @@ yyreduce: break; case 324: -#line 3514 "Gmsh.y" +#line 3518 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -8002,7 +8006,7 @@ yyreduce: break; case 325: -#line 3524 "Gmsh.y" +#line 3528 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -8020,7 +8024,7 @@ yyreduce: break; case 326: -#line 3542 "Gmsh.y" +#line 3546 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d)); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); @@ -8028,7 +8032,7 @@ yyreduce: break; case 327: -#line 3547 "Gmsh.y" +#line 3551 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); @@ -8036,7 +8040,7 @@ yyreduce: break; case 328: -#line 3552 "Gmsh.y" +#line 3556 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -8049,7 +8053,7 @@ yyreduce: break; case 329: -#line 3562 "Gmsh.y" +#line 3566 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -8062,7 +8066,7 @@ yyreduce: break; case 330: -#line 3572 "Gmsh.y" +#line 3576 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -8070,70 +8074,70 @@ yyreduce: break; case 331: -#line 3580 "Gmsh.y" +#line 3584 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; case 332: -#line 3584 "Gmsh.y" +#line 3588 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; case 333: -#line 3588 "Gmsh.y" +#line 3592 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 334: -#line 3592 "Gmsh.y" +#line 3596 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; case 335: -#line 3596 "Gmsh.y" +#line 3600 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; case 336: -#line 3603 "Gmsh.y" +#line 3607 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); ;} break; case 337: -#line 3607 "Gmsh.y" +#line 3611 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; ;} break; case 338: -#line 3611 "Gmsh.y" +#line 3615 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 339: -#line 3615 "Gmsh.y" +#line 3619 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 340: -#line 3622 "Gmsh.y" +#line 3626 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); @@ -8141,14 +8145,14 @@ yyreduce: break; case 341: -#line 3627 "Gmsh.y" +#line 3631 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; case 342: -#line 3634 "Gmsh.y" +#line 3638 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -8156,14 +8160,14 @@ yyreduce: break; case 343: -#line 3639 "Gmsh.y" +#line 3643 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 344: -#line 3643 "Gmsh.y" +#line 3647 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); @@ -8171,14 +8175,14 @@ yyreduce: break; case 345: -#line 3648 "Gmsh.y" +#line 3652 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 346: -#line 3652 "Gmsh.y" +#line 3656 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8189,7 +8193,7 @@ yyreduce: break; case 347: -#line 3660 "Gmsh.y" +#line 3664 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8200,14 +8204,14 @@ yyreduce: break; case 348: -#line 3671 "Gmsh.y" +#line 3675 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 349: -#line 3675 "Gmsh.y" +#line 3679 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -8219,7 +8223,7 @@ yyreduce: break; case 350: -#line 3687 "Gmsh.y" +#line 3691 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8230,7 +8234,7 @@ yyreduce: break; case 351: -#line 3695 "Gmsh.y" +#line 3699 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8241,7 +8245,7 @@ yyreduce: break; case 352: -#line 3703 "Gmsh.y" +#line 3707 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -8251,7 +8255,7 @@ yyreduce: break; case 353: -#line 3710 "Gmsh.y" +#line 3714 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d) || ((yyvsp[(1) - (5)].d) < (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) < 0) || ((yyvsp[(1) - (5)].d) > (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) > 0)){ @@ -8265,7 +8269,7 @@ yyreduce: break; case 354: -#line 3721 "Gmsh.y" +#line 3725 "Gmsh.y" { // Returns the coordinates of a point and fills a list with it. // This allows to ensure e.g. that relative point positions are @@ -8288,7 +8292,7 @@ yyreduce: break; case 355: -#line 3741 "Gmsh.y" +#line 3745 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -8301,7 +8305,7 @@ yyreduce: break; case 356: -#line 3751 "Gmsh.y" +#line 3755 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -8314,7 +8318,7 @@ yyreduce: break; case 357: -#line 3761 "Gmsh.y" +#line 3765 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -8327,7 +8331,7 @@ yyreduce: break; case 358: -#line 3771 "Gmsh.y" +#line 3775 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -8347,7 +8351,7 @@ yyreduce: break; case 359: -#line 3791 "Gmsh.y" +#line 3795 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -8355,21 +8359,21 @@ yyreduce: break; case 360: -#line 3796 "Gmsh.y" +#line 3800 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 361: -#line 3800 "Gmsh.y" +#line 3804 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; case 362: -#line 3804 "Gmsh.y" +#line 3808 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -8381,21 +8385,21 @@ yyreduce: break; case 363: -#line 3816 "Gmsh.y" +#line 3820 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; case 364: -#line 3820 "Gmsh.y" +#line 3824 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; case 365: -#line 3832 "Gmsh.y" +#line 3836 "Gmsh.y" { int flag; (yyval.u) = GetColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -8405,7 +8409,7 @@ yyreduce: break; case 366: -#line 3839 "Gmsh.y" +#line 3843 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -8415,14 +8419,14 @@ yyreduce: break; case 367: -#line 3849 "Gmsh.y" +#line 3853 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 368: -#line 3853 "Gmsh.y" +#line 3857 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -8437,7 +8441,7 @@ yyreduce: break; case 369: -#line 3868 "Gmsh.y" +#line 3872 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); @@ -8445,21 +8449,21 @@ yyreduce: break; case 370: -#line 3873 "Gmsh.y" +#line 3877 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; case 371: -#line 3880 "Gmsh.y" +#line 3884 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 372: -#line 3884 "Gmsh.y" +#line 3888 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -8475,7 +8479,7 @@ yyreduce: break; case 373: -#line 3897 "Gmsh.y" +#line 3901 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -8486,7 +8490,7 @@ yyreduce: break; case 374: -#line 3905 "Gmsh.y" +#line 3909 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -8497,14 +8501,14 @@ yyreduce: break; case 375: -#line 3916 "Gmsh.y" +#line 3920 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 376: -#line 3920 "Gmsh.y" +#line 3924 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -8515,7 +8519,7 @@ yyreduce: break; case 377: -#line 3928 "Gmsh.y" +#line 3932 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c)) + strlen((yyvsp[(5) - (6)].c)) + 1) * sizeof(char)); strcpy((yyval.c), (yyvsp[(3) - (6)].c)); @@ -8526,7 +8530,7 @@ yyreduce: break; case 378: -#line 3936 "Gmsh.y" +#line 3940 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -8543,7 +8547,7 @@ yyreduce: break; case 379: -#line 3950 "Gmsh.y" +#line 3954 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -8560,14 +8564,14 @@ yyreduce: break; case 380: -#line 3964 "Gmsh.y" +#line 3968 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 381: -#line 3968 "Gmsh.y" +#line 3972 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -8590,7 +8594,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 8594 "Gmsh.tab.cpp" +#line 8598 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -8804,7 +8808,7 @@ yyreturn: } -#line 3988 "Gmsh.y" +#line 3992 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index c549d60f8d4c15794973eded5e94906b3be57768..46b25cfb0b8d3435aa47fd3ff3384884ec620c76 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -2165,6 +2165,10 @@ Delete : else if(!strcmp($2, "Variables")){ gmsh_yysymbols.clear(); } + else if(!strcmp($2, "Options")){ + ReInitOptions(0); + InitOptionsGUI(0); + } else{ if(gmsh_yysymbols.count($2)) gmsh_yysymbols.erase($2);