diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 543ac61e225855c9ff3fb82e9a7754ec5f4a982d..b88d17ec679861511f08d296aa1639b11be7c5a3 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -432,7 +432,7 @@ void GModel::getEntitiesInBox(std::vector<GEntity*> &entities, SBoundingBox3d bo } void GModel::getBoundaryTags(std::vector<int> inTags[4], std::vector<int> outTags[4], - bool combined) + bool combined, bool oriented) { for(int dim = 1; dim < 4; dim++){ for(unsigned int i = 0; i < inTags[dim].size(); i++){ @@ -440,8 +440,16 @@ void GModel::getBoundaryTags(std::vector<int> inTags[4], std::vector<int> outTag GRegion *gr = getRegionByTag(inTags[3][i]); if(gr){ std::list<GFace*> faces(gr->faces()); - for(std::list<GFace*>::iterator it = faces.begin(); it != faces.end(); it++) - outTags[2].push_back((*it)->tag()); + std::list<int> orientations(gr->faceOrientations()); + std::list<int>::iterator ito = orientations.begin(); + for(std::list<GFace*>::iterator it = faces.begin(); it != faces.end(); it++){ + int tag = (*it)->tag(); + if(oriented && ito != orientations.end()){ + tag *= *ito; + ito++; + } + outTags[2].push_back(tag); + } } else Msg::Error("Unknown model region with tag %d", inTags[3][i]); @@ -450,8 +458,16 @@ void GModel::getBoundaryTags(std::vector<int> inTags[4], std::vector<int> outTag GFace *gf = getFaceByTag(inTags[2][i]); if(gf){ std::list<GEdge*> edges(gf->edges()); - for(std::list<GEdge*>::iterator it = edges.begin(); it != edges.end(); it++) - outTags[1].push_back((*it)->tag()); + std::list<int> orientations(gf->edgeOrientations()); + std::list<int>::iterator ito = orientations.begin(); + for(std::list<GEdge*>::iterator it = edges.begin(); it != edges.end(); it++){ + int tag = (*it)->tag(); + if(oriented && ito != orientations.end()){ + tag *= *ito; + ito++; + } + outTags[1].push_back(tag); + } } else Msg::Error("Unknown model face with tag %d", inTags[2][i]); diff --git a/Geo/GModel.h b/Geo/GModel.h index 30d57788d888e10b57df8e854eb5d04896c2e091..09961b1972df4ac8542f8488ea6e53afd59de924 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -291,7 +291,7 @@ class GModel { // get tags of entities of the boundary of the given input entities void getBoundaryTags(std::vector<int> inTags[4], std::vector<int> outTags[4], - bool combined); + bool combined, bool oriented); // return the highest number associated with an elementary entity of // a given dimension (or the highest overall if dim < 0) diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index b68ac716f86e0d9f17e3c895925ad199325e4088..00e4abb4b1ab946e3d7f8960ebda9dfe9e562112 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -1380,43 +1380,43 @@ static const yytype_uint16 yyrline[] = 1681, 1701, 1710, 1724, 1739, 1753, 1772, 1782, 1788, 1794, 1801, 1830, 1845, 1865, 1886, 1907, 1928, 1950, 1972, 1993, 2016, 2025, 2046, 2061, 2075, 2090, 2105, 2114, 2124, 2134, - 2144, 2159, 2170, 2183, 2195, 2207, 2219, 2256, 2267, 2283, - 2284, 2289, 2292, 2296, 2307, 2318, 2329, 2345, 2364, 2385, - 2400, 2416, 2434, 2485, 2506, 2528, 2551, 2656, 2672, 2707, - 2722, 2728, 2743, 2771, 2788, 2794, 2805, 2824, 2830, 2836, - 2842, 2848, 2854, 2865, 2938, 2956, 2973, 2988, 3021, 3033, - 3057, 3061, 3066, 3073, 3078, 3088, 3093, 3099, 3107, 3111, - 3115, 3124, 3188, 3204, 3221, 3238, 3260, 3282, 3317, 3325, - 3333, 3339, 3346, 3353, 3373, 3399, 3411, 3423, 3439, 3455, - 3464, 3463, 3478, 3477, 3492, 3491, 3506, 3505, 3518, 3531, - 3545, 3559, 3578, 3581, 3587, 3599, 3619, 3623, 3627, 3631, - 3635, 3639, 3643, 3647, 3656, 3669, 3670, 3671, 3672, 3673, - 3677, 3678, 3679, 3682, 3700, 3717, 3734, 3737, 3753, 3756, - 3773, 3776, 3782, 3785, 3792, 3795, 3802, 3819, 3860, 3904, - 3943, 3968, 3977, 4007, 4033, 4059, 4091, 4118, 4144, 4170, - 4196, 4222, 4244, 4250, 4256, 4262, 4268, 4274, 4300, 4326, - 4343, 4360, 4377, 4389, 4395, 4401, 4413, 4417, 4427, 4438, - 4439, 4440, 4444, 4450, 4462, 4480, 4508, 4509, 4510, 4511, - 4512, 4513, 4514, 4515, 4516, 4523, 4524, 4525, 4526, 4527, - 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, - 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, - 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4564, 4565, - 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4579, - 4578, 4586, 4588, 4593, 4599, 4623, 4641, 4659, 4664, 4670, - 4686, 4692, 4698, 4717, 4738, 4771, 4795, 4798, 4804, 4815, - 4825, 4830, 4841, 4850, 4855, 4860, 4889, 4888, 4918, 4920, - 4925, 4934, 4936, 4942, 4943, 4949, 4953, 4957, 4961, 4965, - 4972, 4976, 4980, 4984, 4991, 4996, 5003, 5008, 5012, 5017, - 5021, 5029, 5040, 5044, 5056, 5064, 5072, 5079, 5089, 5112, - 5118, 5124, 5130, 5136, 5147, 5158, 5169, 5180, 5186, 5192, - 5198, 5204, 5214, 5224, 5234, 5247, 5259, 5263, 5267, 5271, - 5289, 5297, 5305, 5334, 5344, 5363, 5368, 5372, 5376, 5388, - 5392, 5404, 5421, 5431, 5435, 5450, 5455, 5462, 5466, 5479, - 5493, 5510, 5536, 5540, 5548, 5554, 5560, 5566, 5575, 5579, - 5583, 5591, 5597, 5603, 5611, 5619, 5626, 5634, 5649, 5663, - 5677, 5689, 5705, 5714, 5723, 5733, 5744, 5752, 5760, 5764, - 5783, 5790, 5796, 5803, 5811, 5810, 5820, 5844, 5846, 5852, - 5857, 5865, 5874, 5887, 5890, 5894 + 2144, 2159, 2170, 2183, 2195, 2207, 2219, 2261, 2272, 2288, + 2289, 2294, 2297, 2301, 2312, 2323, 2334, 2350, 2369, 2390, + 2405, 2421, 2439, 2490, 2511, 2533, 2556, 2661, 2677, 2712, + 2727, 2733, 2748, 2776, 2793, 2799, 2810, 2829, 2835, 2841, + 2847, 2853, 2859, 2870, 2943, 2961, 2978, 2993, 3026, 3038, + 3062, 3066, 3071, 3078, 3083, 3093, 3098, 3104, 3112, 3116, + 3120, 3129, 3193, 3209, 3226, 3243, 3265, 3287, 3322, 3330, + 3338, 3344, 3351, 3358, 3378, 3404, 3416, 3428, 3444, 3460, + 3469, 3468, 3483, 3482, 3497, 3496, 3511, 3510, 3523, 3536, + 3550, 3564, 3583, 3586, 3592, 3604, 3624, 3628, 3632, 3636, + 3640, 3644, 3648, 3652, 3661, 3674, 3675, 3676, 3677, 3678, + 3682, 3683, 3684, 3687, 3705, 3722, 3739, 3742, 3758, 3761, + 3778, 3781, 3787, 3790, 3797, 3800, 3807, 3824, 3865, 3909, + 3948, 3973, 3982, 4012, 4038, 4064, 4096, 4123, 4149, 4175, + 4201, 4227, 4249, 4255, 4261, 4267, 4273, 4279, 4305, 4331, + 4348, 4365, 4382, 4394, 4400, 4406, 4418, 4422, 4432, 4443, + 4444, 4445, 4449, 4455, 4467, 4485, 4513, 4514, 4515, 4516, + 4517, 4518, 4519, 4520, 4521, 4528, 4529, 4530, 4531, 4532, + 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, + 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, + 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4569, 4570, + 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4584, + 4583, 4591, 4593, 4598, 4604, 4628, 4646, 4664, 4669, 4675, + 4691, 4697, 4703, 4722, 4743, 4776, 4800, 4803, 4809, 4820, + 4830, 4835, 4846, 4855, 4860, 4865, 4894, 4893, 4923, 4925, + 4930, 4939, 4941, 4947, 4948, 4954, 4958, 4962, 4966, 4970, + 4977, 4981, 4985, 4989, 4996, 5001, 5008, 5013, 5017, 5022, + 5026, 5034, 5045, 5049, 5061, 5069, 5077, 5084, 5094, 5117, + 5123, 5129, 5135, 5141, 5152, 5163, 5174, 5185, 5191, 5197, + 5203, 5209, 5219, 5229, 5239, 5252, 5264, 5268, 5272, 5276, + 5294, 5302, 5310, 5339, 5349, 5368, 5373, 5377, 5381, 5393, + 5397, 5409, 5426, 5436, 5440, 5455, 5460, 5467, 5471, 5484, + 5498, 5515, 5541, 5545, 5553, 5559, 5565, 5571, 5580, 5584, + 5588, 5596, 5602, 5608, 5616, 5624, 5631, 5639, 5654, 5668, + 5682, 5694, 5710, 5719, 5728, 5738, 5749, 5757, 5765, 5769, + 5788, 5795, 5801, 5808, 5816, 5815, 5825, 5849, 5851, 5857, + 5862, 5870, 5879, 5892, 5895, 5899 }; #endif @@ -8211,7 +8211,10 @@ yyreduce: List_Add((yyval.l), &s); } } - else if(action == "Boundary" || action == "CombinedBoundary"){ + else if(action == "Boundary" || + action == "CombinedBoundary" || + action == "OrientedBoundary" || + action == "CombinedOrientedBoundary"){ // boundary operations are performed directly on GModel, which enables // to compute the boundary of hybrid CAD models; this also automatically // binds all boundary entities for OCC models @@ -8221,7 +8224,9 @@ yyreduce: if(GModel::current()->getGEOInternals()->getChanged()) GModel::current()->getGEOInternals()->synchronize(GModel::current()); std::vector<int> in[4], out[4]; ListOfShapes2Vectors((yyvsp[(3) - (4)].l), in); - GModel::current()->getBoundaryTags(in, out, action == "CombinedBoundary"); + GModel::current()->getBoundaryTags + (in, out, action.find("Combined") != std::string::npos, + action.find("Oriented") != std::string::npos); Vectors2ListOfShapes(out, (yyval.l)); } else{ @@ -8233,7 +8238,7 @@ yyreduce: break; case 197: -#line 2257 "Gmsh.y" +#line 2262 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -8247,7 +8252,7 @@ yyreduce: break; case 198: -#line 2268 "Gmsh.y" +#line 2273 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); if(factory == "OpenCASCADE"){ @@ -8263,31 +8268,31 @@ yyreduce: break; case 199: -#line 2283 "Gmsh.y" +#line 2288 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 200: -#line 2284 "Gmsh.y" +#line 2289 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 201: -#line 2289 "Gmsh.y" +#line 2294 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; case 202: -#line 2293 "Gmsh.y" +#line 2298 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; case 203: -#line 2297 "Gmsh.y" +#line 2302 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8301,7 +8306,7 @@ yyreduce: break; case 204: -#line 2308 "Gmsh.y" +#line 2313 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8315,7 +8320,7 @@ yyreduce: break; case 205: -#line 2319 "Gmsh.y" +#line 2324 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8329,7 +8334,7 @@ yyreduce: break; case 206: -#line 2330 "Gmsh.y" +#line 2335 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8343,7 +8348,7 @@ yyreduce: break; case 207: -#line 2346 "Gmsh.y" +#line 2351 "Gmsh.y" { if(List_Nbr((yyvsp[(7) - (8)].l)) == 4){ int t = (int)(yyvsp[(4) - (8)].d); @@ -8365,7 +8370,7 @@ yyreduce: break; case 208: -#line 2365 "Gmsh.y" +#line 2370 "Gmsh.y" { int t = (int)(yyvsp[(4) - (10)].d); if(gLevelset::find(t)){ @@ -8389,7 +8394,7 @@ yyreduce: break; case 209: -#line 2387 "Gmsh.y" +#line 2392 "Gmsh.y" { int t = (int)(yyvsp[(4) - (14)].d); if(gLevelset::find(t)){ @@ -8406,7 +8411,7 @@ yyreduce: break; case 210: -#line 2402 "Gmsh.y" +#line 2407 "Gmsh.y" { int t = (int)(yyvsp[(4) - (16)].d); if(gLevelset::find(t)){ @@ -8424,7 +8429,7 @@ yyreduce: break; case 211: -#line 2417 "Gmsh.y" +#line 2422 "Gmsh.y" { if(List_Nbr((yyvsp[(10) - (12)].l)) == 1){ int t = (int)(yyvsp[(4) - (12)].d); @@ -8445,7 +8450,7 @@ yyreduce: break; case 212: -#line 2436 "Gmsh.y" +#line 2441 "Gmsh.y" { if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ int t = (int)(yyvsp[(4) - (14)].d); @@ -8498,7 +8503,7 @@ yyreduce: break; case 213: -#line 2487 "Gmsh.y" +#line 2492 "Gmsh.y" { if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ int t = (int)(yyvsp[(4) - (14)].d); @@ -8521,7 +8526,7 @@ yyreduce: break; case 214: -#line 2508 "Gmsh.y" +#line 2513 "Gmsh.y" { if(List_Nbr((yyvsp[(12) - (14)].l)) == 3){ int t = (int)(yyvsp[(4) - (14)].d); @@ -8545,7 +8550,7 @@ yyreduce: break; case 215: -#line 2530 "Gmsh.y" +#line 2535 "Gmsh.y" { if(List_Nbr((yyvsp[(12) - (14)].l)) == 5){ int t = (int)(yyvsp[(4) - (14)].d); @@ -8570,7 +8575,7 @@ yyreduce: break; case 216: -#line 2552 "Gmsh.y" +#line 2557 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (8)].c), "Union")){ int t = (int)(yyvsp[(4) - (8)].d); @@ -8678,7 +8683,7 @@ yyreduce: break; case 217: -#line 2657 "Gmsh.y" +#line 2662 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (8)].c), "MathEval")){ int t = (int)(yyvsp[(4) - (8)].d); @@ -8697,7 +8702,7 @@ yyreduce: break; case 218: -#line 2673 "Gmsh.y" +#line 2678 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "CutMesh")){ int t = (int)(yyvsp[(4) - (6)].d); @@ -8730,7 +8735,7 @@ yyreduce: break; case 219: -#line 2708 "Gmsh.y" +#line 2713 "Gmsh.y" { // don't use per-dimension vectors here, in order to respect the input // ordering when deleting (important in GEO for dependencies, e.g. cannot @@ -8748,7 +8753,7 @@ yyreduce: break; case 220: -#line 2723 "Gmsh.y" +#line 2728 "Gmsh.y" { #if defined(HAVE_MESH) GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d)); @@ -8757,7 +8762,7 @@ yyreduce: break; case 221: -#line 2729 "Gmsh.y" +#line 2734 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -8775,7 +8780,7 @@ yyreduce: break; case 222: -#line 2744 "Gmsh.y" +#line 2749 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ ClearProject(); @@ -8806,7 +8811,7 @@ yyreduce: break; case 223: -#line 2772 "Gmsh.y" +#line 2777 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -8821,7 +8826,7 @@ yyreduce: break; case 224: -#line 2789 "Gmsh.y" +#line 2794 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(4) - (5)].l), tags); setColor(tags, (yyvsp[(2) - (5)].u), false); @@ -8830,7 +8835,7 @@ yyreduce: break; case 225: -#line 2795 "Gmsh.y" +#line 2800 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(5) - (6)].l), tags); setColor(tags, (yyvsp[(3) - (6)].u), true); @@ -8839,7 +8844,7 @@ yyreduce: break; case 226: -#line 2806 "Gmsh.y" +#line 2811 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(4) - (5)].l), tags); for(int dim = 0; dim < 4; dim++){ @@ -8856,7 +8861,7 @@ yyreduce: break; case 227: -#line 2825 "Gmsh.y" +#line 2830 "Gmsh.y" { std::string what = (yyvsp[(2) - (3)].c); setVisibility(-1, 1, false); @@ -8865,7 +8870,7 @@ yyreduce: break; case 228: -#line 2831 "Gmsh.y" +#line 2836 "Gmsh.y" { std::string what = (yyvsp[(2) - (3)].c); setVisibility(-1, 0, false); @@ -8874,7 +8879,7 @@ yyreduce: break; case 229: -#line 2837 "Gmsh.y" +#line 2842 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(3) - (4)].l), tags); setVisibility(tags, 1, false); @@ -8883,7 +8888,7 @@ yyreduce: break; case 230: -#line 2843 "Gmsh.y" +#line 2848 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(4) - (5)].l), tags); setVisibility(tags, 1, true); @@ -8892,7 +8897,7 @@ yyreduce: break; case 231: -#line 2849 "Gmsh.y" +#line 2854 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(3) - (4)].l), tags); setVisibility(tags, 0, false); @@ -8901,7 +8906,7 @@ yyreduce: break; case 232: -#line 2855 "Gmsh.y" +#line 2860 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(4) - (5)].l), tags); setVisibility(tags, 0, true); @@ -8910,7 +8915,7 @@ yyreduce: break; case 233: -#line 2866 "Gmsh.y" +#line 2871 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(2) - (3)].c)); @@ -8986,7 +8991,7 @@ yyreduce: break; case 234: -#line 2939 "Gmsh.y" +#line 2944 "Gmsh.y" { int n = List_Nbr((yyvsp[(3) - (5)].l)); if(n == 1){ @@ -9007,7 +9012,7 @@ yyreduce: break; case 235: -#line 2957 "Gmsh.y" +#line 2962 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -9027,7 +9032,7 @@ yyreduce: break; case 236: -#line 2974 "Gmsh.y" +#line 2979 "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")){ @@ -9045,7 +9050,7 @@ yyreduce: break; case 237: -#line 2989 "Gmsh.y" +#line 2994 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -9081,7 +9086,7 @@ yyreduce: break; case 238: -#line 3022 "Gmsh.y" +#line 3027 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -9096,7 +9101,7 @@ yyreduce: break; case 239: -#line 3034 "Gmsh.y" +#line 3039 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -9123,14 +9128,14 @@ yyreduce: break; case 240: -#line 3058 "Gmsh.y" +#line 3063 "Gmsh.y" { Msg::Exit(0); ;} break; case 241: -#line 3062 "Gmsh.y" +#line 3067 "Gmsh.y" { gmsh_yyerrorstate = 999; // this will be checked when yyparse returns YYABORT; @@ -9138,7 +9143,7 @@ yyreduce: break; case 242: -#line 3067 "Gmsh.y" +#line 3072 "Gmsh.y" { // force sync if(GModel::current()->getOCCInternals()) @@ -9148,7 +9153,7 @@ yyreduce: break; case 243: -#line 3074 "Gmsh.y" +#line 3079 "Gmsh.y" { new GModel(); GModel::current(GModel::list.size() - 1); @@ -9156,7 +9161,7 @@ yyreduce: break; case 244: -#line 3079 "Gmsh.y" +#line 3084 "Gmsh.y" { CTX::instance()->forcedBBox = 0; if(GModel::current()->getOCCInternals() && @@ -9169,7 +9174,7 @@ yyreduce: break; case 245: -#line 3089 "Gmsh.y" +#line 3094 "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)); @@ -9177,7 +9182,7 @@ yyreduce: break; case 246: -#line 3094 "Gmsh.y" +#line 3099 "Gmsh.y" { #if defined(HAVE_OPENGL) drawContext::global()->draw(); @@ -9186,7 +9191,7 @@ yyreduce: break; case 247: -#line 3100 "Gmsh.y" +#line 3105 "Gmsh.y" { #if defined(HAVE_OPENGL) CTX::instance()->mesh.changed = ENT_ALL; @@ -9197,21 +9202,21 @@ yyreduce: break; case 248: -#line 3108 "Gmsh.y" +#line 3113 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; case 249: -#line 3112 "Gmsh.y" +#line 3117 "Gmsh.y" { GModel::current()->createTopologyFromMesh(1); ;} break; case 250: -#line 3116 "Gmsh.y" +#line 3121 "Gmsh.y" { if(GModel::current()->getOCCInternals() && GModel::current()->getOCCInternals()->getChanged()) @@ -9223,7 +9228,7 @@ yyreduce: break; case 251: -#line 3126 "Gmsh.y" +#line 3131 "Gmsh.y" { int lock = CTX::instance()->lock; CTX::instance()->lock = 0; @@ -9284,7 +9289,7 @@ yyreduce: break; case 252: -#line 3189 "Gmsh.y" +#line 3194 "Gmsh.y" { #if defined(HAVE_POPPLER) std::vector<int> is; @@ -9299,7 +9304,7 @@ yyreduce: break; case 253: -#line 3205 "Gmsh.y" +#line 3210 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -9319,7 +9324,7 @@ yyreduce: break; case 254: -#line 3222 "Gmsh.y" +#line 3227 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -9339,7 +9344,7 @@ yyreduce: break; case 255: -#line 3239 "Gmsh.y" +#line 3244 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -9364,7 +9369,7 @@ yyreduce: break; case 256: -#line 3261 "Gmsh.y" +#line 3266 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -9389,7 +9394,7 @@ yyreduce: break; case 257: -#line 3283 "Gmsh.y" +#line 3288 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -9427,7 +9432,7 @@ yyreduce: break; case 258: -#line 3318 "Gmsh.y" +#line 3323 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -9438,7 +9443,7 @@ yyreduce: break; case 259: -#line 3326 "Gmsh.y" +#line 3331 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -9449,7 +9454,7 @@ yyreduce: break; case 260: -#line 3334 "Gmsh.y" +#line 3339 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -9458,7 +9463,7 @@ yyreduce: break; case 261: -#line 3340 "Gmsh.y" +#line 3345 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -9468,7 +9473,7 @@ yyreduce: break; case 262: -#line 3347 "Gmsh.y" +#line 3352 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -9478,7 +9483,7 @@ yyreduce: break; case 263: -#line 3354 "Gmsh.y" +#line 3359 "Gmsh.y" { ImbricatedTest++; if(ImbricatedTest > MAX_RECUR_TESTS-1){ @@ -9501,7 +9506,7 @@ yyreduce: break; case 264: -#line 3374 "Gmsh.y" +#line 3379 "Gmsh.y" { if(ImbricatedTest > 0){ if (statusImbricatedTests[ImbricatedTest]){ @@ -9530,7 +9535,7 @@ yyreduce: break; case 265: -#line 3400 "Gmsh.y" +#line 3405 "Gmsh.y" { if(ImbricatedTest > 0){ if(statusImbricatedTests[ImbricatedTest]){ @@ -9545,7 +9550,7 @@ yyreduce: break; case 266: -#line 3412 "Gmsh.y" +#line 3417 "Gmsh.y" { ImbricatedTest--; if(ImbricatedTest < 0) @@ -9554,7 +9559,7 @@ yyreduce: break; case 267: -#line 3424 "Gmsh.y" +#line 3429 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -9573,7 +9578,7 @@ yyreduce: break; case 268: -#line 3440 "Gmsh.y" +#line 3445 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -9592,7 +9597,7 @@ yyreduce: break; case 269: -#line 3456 "Gmsh.y" +#line 3461 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -9603,7 +9608,7 @@ yyreduce: break; case 270: -#line 3464 "Gmsh.y" +#line 3469 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -9612,7 +9617,7 @@ yyreduce: break; case 271: -#line 3470 "Gmsh.y" +#line 3475 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -9623,7 +9628,7 @@ yyreduce: break; case 272: -#line 3478 "Gmsh.y" +#line 3483 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -9632,7 +9637,7 @@ yyreduce: break; case 273: -#line 3484 "Gmsh.y" +#line 3489 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -9643,7 +9648,7 @@ yyreduce: break; case 274: -#line 3492 "Gmsh.y" +#line 3497 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -9652,7 +9657,7 @@ yyreduce: break; case 275: -#line 3498 "Gmsh.y" +#line 3503 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -9663,7 +9668,7 @@ yyreduce: break; case 276: -#line 3506 "Gmsh.y" +#line 3511 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -9672,7 +9677,7 @@ yyreduce: break; case 277: -#line 3512 "Gmsh.y" +#line 3517 "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., @@ -9682,7 +9687,7 @@ yyreduce: break; case 278: -#line 3519 "Gmsh.y" +#line 3524 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -9698,7 +9703,7 @@ yyreduce: break; case 279: -#line 3532 "Gmsh.y" +#line 3537 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -9715,7 +9720,7 @@ yyreduce: break; case 280: -#line 3546 "Gmsh.y" +#line 3551 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -9732,7 +9737,7 @@ yyreduce: break; case 281: -#line 3560 "Gmsh.y" +#line 3565 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -9751,19 +9756,19 @@ yyreduce: break; case 282: -#line 3579 "Gmsh.y" +#line 3584 "Gmsh.y" { ;} break; case 283: -#line 3582 "Gmsh.y" +#line 3587 "Gmsh.y" { ;} break; case 284: -#line 3588 "Gmsh.y" +#line 3593 "Gmsh.y" { int n = (int)fabs((yyvsp[(3) - (5)].d)); if(n){ // we accept n==0 to easily disable layers @@ -9778,7 +9783,7 @@ yyreduce: break; case 285: -#line 3600 "Gmsh.y" +#line 3605 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -9801,56 +9806,56 @@ yyreduce: break; case 286: -#line 3620 "Gmsh.y" +#line 3625 "Gmsh.y" { extr.mesh.ScaleLast = true; ;} break; case 287: -#line 3624 "Gmsh.y" +#line 3629 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; case 288: -#line 3628 "Gmsh.y" +#line 3633 "Gmsh.y" { extr.mesh.Recombine = (yyvsp[(2) - (3)].d) ? true : false; ;} break; case 289: -#line 3632 "Gmsh.y" +#line 3637 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1; ;} break; case 290: -#line 3636 "Gmsh.y" +#line 3641 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1_RECOMB; ;} break; case 291: -#line 3640 "Gmsh.y" +#line 3645 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1; ;} break; case 292: -#line 3644 "Gmsh.y" +#line 3649 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1_RECOMB; ;} break; case 293: -#line 3648 "Gmsh.y" +#line 3653 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (9)].l), tags); int num = (int)(yyvsp[(3) - (9)].d); @@ -9862,7 +9867,7 @@ yyreduce: break; case 294: -#line 3657 "Gmsh.y" +#line 3662 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "Index")) extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d); @@ -9873,47 +9878,47 @@ yyreduce: break; case 295: -#line 3669 "Gmsh.y" +#line 3674 "Gmsh.y" { (yyval.i) = OCC_Internals::Union; ;} break; case 296: -#line 3670 "Gmsh.y" +#line 3675 "Gmsh.y" { (yyval.i) = OCC_Internals::Intersection; ;} break; case 297: -#line 3671 "Gmsh.y" +#line 3676 "Gmsh.y" { (yyval.i) = OCC_Internals::Difference; ;} break; case 298: -#line 3672 "Gmsh.y" +#line 3677 "Gmsh.y" { (yyval.i) = OCC_Internals::Section; ;} break; case 299: -#line 3673 "Gmsh.y" +#line 3678 "Gmsh.y" { (yyval.i) = OCC_Internals::Fragments; ;} break; case 300: -#line 3677 "Gmsh.y" +#line 3682 "Gmsh.y" { (yyval.i) = 0; ;} break; case 301: -#line 3678 "Gmsh.y" +#line 3683 "Gmsh.y" { (yyval.i) = 1; ;} break; case 302: -#line 3679 "Gmsh.y" +#line 3684 "Gmsh.y" { (yyval.i) = (yyvsp[(2) - (3)].d); ;} break; case 303: -#line 3684 "Gmsh.y" +#line 3689 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -9933,7 +9938,7 @@ yyreduce: break; case 304: -#line 3701 "Gmsh.y" +#line 3706 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -9950,7 +9955,7 @@ yyreduce: break; case 305: -#line 3719 "Gmsh.y" +#line 3724 "Gmsh.y" { if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ std::vector<int> shape[4], tool[4], out[4]; @@ -9965,14 +9970,14 @@ yyreduce: break; case 306: -#line 3734 "Gmsh.y" +#line 3739 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; case 307: -#line 3738 "Gmsh.y" +#line 3743 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -9988,14 +9993,14 @@ yyreduce: break; case 308: -#line 3753 "Gmsh.y" +#line 3758 "Gmsh.y" { (yyval.i) = -1; // left ;} break; case 309: -#line 3757 "Gmsh.y" +#line 3762 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -10012,49 +10017,49 @@ yyreduce: break; case 310: -#line 3773 "Gmsh.y" +#line 3778 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; case 311: -#line 3777 "Gmsh.y" +#line 3782 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; case 312: -#line 3782 "Gmsh.y" +#line 3787 "Gmsh.y" { (yyval.i) = 45; ;} break; case 313: -#line 3786 "Gmsh.y" +#line 3791 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; case 314: -#line 3792 "Gmsh.y" +#line 3797 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; case 315: -#line 3796 "Gmsh.y" +#line 3801 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; case 316: -#line 3803 "Gmsh.y" +#line 3808 "Gmsh.y" { // mesh sizes at vertices are stored in internal CAD data, as they can be // specified during vertex creation and copied around during CAD @@ -10074,7 +10079,7 @@ yyreduce: break; case 317: -#line 3820 "Gmsh.y" +#line 3825 "Gmsh.y" { // transfinite constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10118,7 +10123,7 @@ yyreduce: break; case 318: -#line 3861 "Gmsh.y" +#line 3866 "Gmsh.y" { // transfinite constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10165,7 +10170,7 @@ yyreduce: break; case 319: -#line 3905 "Gmsh.y" +#line 3910 "Gmsh.y" { // transfinite constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10207,7 +10212,7 @@ yyreduce: break; case 320: -#line 3944 "Gmsh.y" +#line 3949 "Gmsh.y" { // transfinite constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10235,7 +10240,7 @@ yyreduce: break; case 321: -#line 3969 "Gmsh.y" +#line 3974 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (8)].l)); i++){ double d; @@ -10247,7 +10252,7 @@ yyreduce: break; case 322: -#line 3978 "Gmsh.y" +#line 3983 "Gmsh.y" { // recombine constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10280,7 +10285,7 @@ yyreduce: break; case 323: -#line 4008 "Gmsh.y" +#line 4013 "Gmsh.y" { // recombine constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10309,7 +10314,7 @@ yyreduce: break; case 324: -#line 4034 "Gmsh.y" +#line 4039 "Gmsh.y" { // smoothing constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10338,7 +10343,7 @@ yyreduce: break; case 325: -#line 4061 "Gmsh.y" +#line 4066 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (11)].l)) != List_Nbr((yyvsp[(8) - (11)].l))){ yymsg(0, "Number of master lines (%d) different from number of " @@ -10372,7 +10377,7 @@ yyreduce: break; case 326: -#line 4093 "Gmsh.y" +#line 4098 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (11)].l)) != List_Nbr((yyvsp[(8) - (11)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -10401,7 +10406,7 @@ yyreduce: break; case 327: -#line 4120 "Gmsh.y" +#line 4125 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (18)].l)) != List_Nbr((yyvsp[(8) - (18)].l))){ yymsg(0, "Number of master edges (%d) different from number of " @@ -10429,7 +10434,7 @@ yyreduce: break; case 328: -#line 4146 "Gmsh.y" +#line 4151 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (18)].l)) != List_Nbr((yyvsp[(8) - (18)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -10457,7 +10462,7 @@ yyreduce: break; case 329: -#line 4172 "Gmsh.y" +#line 4177 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (12)].l)) != List_Nbr((yyvsp[(8) - (12)].l))){ yymsg(0, "Number of master edges (%d) different from number of " @@ -10485,7 +10490,7 @@ yyreduce: break; case 330: -#line 4198 "Gmsh.y" +#line 4203 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (12)].l)) != List_Nbr((yyvsp[(8) - (12)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -10513,7 +10518,7 @@ yyreduce: break; case 331: -#line 4224 "Gmsh.y" +#line 4229 "Gmsh.y" { if (List_Nbr((yyvsp[(5) - (12)].l)) != List_Nbr((yyvsp[(10) - (12)].l))){ yymsg(0, "Number of master surface edges (%d) different from number of " @@ -10537,7 +10542,7 @@ yyreduce: break; case 332: -#line 4245 "Gmsh.y" +#line 4250 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (10)].l), tags); addEmbedded(0, tags, 2, (int)(yyvsp[(8) - (10)].d)); @@ -10546,7 +10551,7 @@ yyreduce: break; case 333: -#line 4251 "Gmsh.y" +#line 4256 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (10)].l), tags); addEmbedded(1, tags, 2, (int)(yyvsp[(8) - (10)].d)); @@ -10555,7 +10560,7 @@ yyreduce: break; case 334: -#line 4257 "Gmsh.y" +#line 4262 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (10)].l), tags); addEmbedded(0, tags, 3, (int)(yyvsp[(8) - (10)].d)); @@ -10564,7 +10569,7 @@ yyreduce: break; case 335: -#line 4263 "Gmsh.y" +#line 4268 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (10)].l), tags); addEmbedded(1, tags, 3, (int)(yyvsp[(8) - (10)].d)); @@ -10573,7 +10578,7 @@ yyreduce: break; case 336: -#line 4269 "Gmsh.y" +#line 4274 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (10)].l), tags); addEmbedded(2, tags, 3, (int)(yyvsp[(8) - (10)].d)); @@ -10582,7 +10587,7 @@ yyreduce: break; case 337: -#line 4275 "Gmsh.y" +#line 4280 "Gmsh.y" { // reverse mesh constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10611,7 +10616,7 @@ yyreduce: break; case 338: -#line 4301 "Gmsh.y" +#line 4306 "Gmsh.y" { // reverse mesh constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10640,7 +10645,7 @@ yyreduce: break; case 339: -#line 4327 "Gmsh.y" +#line 4332 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::viter it = GModel::current()->firstVertex(); @@ -10660,7 +10665,7 @@ yyreduce: break; case 340: -#line 4344 "Gmsh.y" +#line 4349 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::eiter it = GModel::current()->firstEdge(); @@ -10680,7 +10685,7 @@ yyreduce: break; case 341: -#line 4361 "Gmsh.y" +#line 4366 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::fiter it = GModel::current()->firstFace(); @@ -10700,7 +10705,7 @@ yyreduce: break; case 342: -#line 4378 "Gmsh.y" +#line 4383 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ double dnum; @@ -10715,7 +10720,7 @@ yyreduce: break; case 343: -#line 4390 "Gmsh.y" +#line 4395 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); GModel::current()->getGEOInternals()->setCompoundMesh(1, tags); @@ -10724,7 +10729,7 @@ yyreduce: break; case 344: -#line 4396 "Gmsh.y" +#line 4401 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); GModel::current()->getGEOInternals()->setCompoundMesh(2, tags); @@ -10733,7 +10738,7 @@ yyreduce: break; case 345: -#line 4402 "Gmsh.y" +#line 4407 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); GModel::current()->getGEOInternals()->setCompoundMesh(3, tags); @@ -10742,14 +10747,14 @@ yyreduce: break; case 346: -#line 4414 "Gmsh.y" +#line 4419 "Gmsh.y" { GModel::current()->getGEOInternals()->removeAllDuplicates(); ;} break; case 347: -#line 4418 "Gmsh.y" +#line 4423 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) GModel::current()->getGEOInternals()->removeAllDuplicates(); @@ -10762,7 +10767,7 @@ yyreduce: break; case 348: -#line 4428 "Gmsh.y" +#line 4433 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(4) - (6)].l), tags); GModel::current()->getGEOInternals()->mergeVertices(tags); @@ -10771,22 +10776,22 @@ yyreduce: break; case 349: -#line 4438 "Gmsh.y" +#line 4443 "Gmsh.y" { (yyval.c) = (char*)"Homology"; ;} break; case 350: -#line 4439 "Gmsh.y" +#line 4444 "Gmsh.y" { (yyval.c) = (char*)"Cohomology"; ;} break; case 351: -#line 4440 "Gmsh.y" +#line 4445 "Gmsh.y" { (yyval.c) = (char*)"Betti"; ;} break; case 352: -#line 4445 "Gmsh.y" +#line 4450 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < 4; i++) dim.push_back(i); @@ -10795,7 +10800,7 @@ yyreduce: break; case 353: -#line 4451 "Gmsh.y" +#line 4456 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){ @@ -10810,7 +10815,7 @@ yyreduce: break; case 354: -#line 4463 "Gmsh.y" +#line 4468 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){ @@ -10831,7 +10836,7 @@ yyreduce: break; case 355: -#line 4481 "Gmsh.y" +#line 4486 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(6) - (10)].l)); i++){ @@ -10857,47 +10862,47 @@ yyreduce: break; case 356: -#line 4508 "Gmsh.y" +#line 4513 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 357: -#line 4509 "Gmsh.y" +#line 4514 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; case 358: -#line 4510 "Gmsh.y" +#line 4515 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; case 359: -#line 4511 "Gmsh.y" +#line 4516 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 360: -#line 4512 "Gmsh.y" +#line 4517 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; case 361: -#line 4513 "Gmsh.y" +#line 4518 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; case 362: -#line 4514 "Gmsh.y" +#line 4519 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; case 363: -#line 4515 "Gmsh.y" +#line 4520 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; case 364: -#line 4517 "Gmsh.y" +#line 4522 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -10907,232 +10912,232 @@ yyreduce: break; case 365: -#line 4523 "Gmsh.y" +#line 4528 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 366: -#line 4524 "Gmsh.y" +#line 4529 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 367: -#line 4525 "Gmsh.y" +#line 4530 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 368: -#line 4526 "Gmsh.y" +#line 4531 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 369: -#line 4527 "Gmsh.y" +#line 4532 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 370: -#line 4528 "Gmsh.y" +#line 4533 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 371: -#line 4529 "Gmsh.y" +#line 4534 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 372: -#line 4530 "Gmsh.y" +#line 4535 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 373: -#line 4531 "Gmsh.y" +#line 4536 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 374: -#line 4532 "Gmsh.y" +#line 4537 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 375: -#line 4533 "Gmsh.y" +#line 4538 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 376: -#line 4534 "Gmsh.y" +#line 4539 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 377: -#line 4535 "Gmsh.y" +#line 4540 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 378: -#line 4536 "Gmsh.y" +#line 4541 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 379: -#line 4537 "Gmsh.y" +#line 4542 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 380: -#line 4538 "Gmsh.y" +#line 4543 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 381: -#line 4539 "Gmsh.y" +#line 4544 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 382: -#line 4540 "Gmsh.y" +#line 4545 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 383: -#line 4541 "Gmsh.y" +#line 4546 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 384: -#line 4542 "Gmsh.y" +#line 4547 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 385: -#line 4543 "Gmsh.y" +#line 4548 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 386: -#line 4544 "Gmsh.y" +#line 4549 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 387: -#line 4545 "Gmsh.y" +#line 4550 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 388: -#line 4546 "Gmsh.y" +#line 4551 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 389: -#line 4547 "Gmsh.y" +#line 4552 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 390: -#line 4548 "Gmsh.y" +#line 4553 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 391: -#line 4549 "Gmsh.y" +#line 4554 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 392: -#line 4550 "Gmsh.y" +#line 4555 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 393: -#line 4551 "Gmsh.y" +#line 4556 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d) + 0.5); ;} break; case 394: -#line 4552 "Gmsh.y" +#line 4557 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 395: -#line 4553 "Gmsh.y" +#line 4558 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 396: -#line 4554 "Gmsh.y" +#line 4559 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 397: -#line 4555 "Gmsh.y" +#line 4560 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 398: -#line 4564 "Gmsh.y" +#line 4569 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 399: -#line 4565 "Gmsh.y" +#line 4570 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; case 400: -#line 4566 "Gmsh.y" +#line 4571 "Gmsh.y" { (yyval.d) = (double)ImbricatedTest; ;} break; case 401: -#line 4567 "Gmsh.y" +#line 4572 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; case 402: -#line 4568 "Gmsh.y" +#line 4573 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; case 403: -#line 4569 "Gmsh.y" +#line 4574 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; case 404: -#line 4570 "Gmsh.y" +#line 4575 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; case 405: -#line 4571 "Gmsh.y" +#line 4576 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; case 406: -#line 4572 "Gmsh.y" +#line 4577 "Gmsh.y" { (yyval.d) = Cpu(); ;} break; case 407: -#line 4573 "Gmsh.y" +#line 4578 "Gmsh.y" { (yyval.d) = GetMemoryUsage()/1024./1024.; ;} break; case 408: -#line 4574 "Gmsh.y" +#line 4579 "Gmsh.y" { (yyval.d) = TotalRam(); ;} break; case 409: -#line 4579 "Gmsh.y" +#line 4584 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 410: -#line 4581 "Gmsh.y" +#line 4586 "Gmsh.y" { std::vector<double> val(1, (yyvsp[(3) - (6)].d)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -11141,12 +11146,12 @@ yyreduce: break; case 411: -#line 4587 "Gmsh.y" +#line 4592 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 412: -#line 4589 "Gmsh.y" +#line 4594 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -11154,7 +11159,7 @@ yyreduce: break; case 413: -#line 4594 "Gmsh.y" +#line 4599 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -11162,7 +11167,7 @@ yyreduce: break; case 414: -#line 4600 "Gmsh.y" +#line 4605 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(1) - (1)].c2).char2)){ gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (1)].c2).char2]); @@ -11189,7 +11194,7 @@ yyreduce: break; case 415: -#line 4624 "Gmsh.y" +#line 4629 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -11210,7 +11215,7 @@ yyreduce: break; case 416: -#line 4642 "Gmsh.y" +#line 4647 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -11231,7 +11236,7 @@ yyreduce: break; case 417: -#line 4660 "Gmsh.y" +#line 4665 "Gmsh.y" { (yyval.d) = gmsh_yysymbols.count((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -11239,7 +11244,7 @@ yyreduce: break; case 418: -#line 4665 "Gmsh.y" +#line 4670 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.d) = !StatFile(tmp); @@ -11248,7 +11253,7 @@ yyreduce: break; case 419: -#line 4671 "Gmsh.y" +#line 4676 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(2) - (4)].c)]); @@ -11266,7 +11271,7 @@ yyreduce: break; case 420: -#line 4687 "Gmsh.y" +#line 4692 "Gmsh.y" { std::string struct_namespace((yyvsp[(2) - (3)].c)); (yyval.d) = (double)nameSpaces[struct_namespace].size(); @@ -11275,7 +11280,7 @@ yyreduce: break; case 421: -#line 4693 "Gmsh.y" +#line 4698 "Gmsh.y" { std::string struct_namespace(std::string("")); (yyval.d) = (double)nameSpaces[struct_namespace].size(); @@ -11283,7 +11288,7 @@ yyreduce: break; case 422: -#line 4699 "Gmsh.y" +#line 4704 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -11305,7 +11310,7 @@ yyreduce: break; case 423: -#line 4718 "Gmsh.y" +#line 4723 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -11328,7 +11333,7 @@ yyreduce: break; case 424: -#line 4739 "Gmsh.y" +#line 4744 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -11351,7 +11356,7 @@ yyreduce: break; case 425: -#line 4772 "Gmsh.y" +#line 4777 "Gmsh.y" { (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float(NULL, (yyvsp[(1) - (3)].c), (yyvsp[(3) - (3)].c)); /* @@ -11378,12 +11383,12 @@ yyreduce: break; case 426: -#line 4796 "Gmsh.y" +#line 4801 "Gmsh.y" { (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float((yyvsp[(1) - (5)].c), (yyvsp[(3) - (5)].c), (yyvsp[(5) - (5)].c)); ;} break; case 427: -#line 4799 "Gmsh.y" +#line 4804 "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)); @@ -11391,7 +11396,7 @@ yyreduce: break; case 428: -#line 4805 "Gmsh.y" +#line 4810 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -11404,7 +11409,7 @@ yyreduce: break; case 429: -#line 4816 "Gmsh.y" +#line 4821 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -11417,7 +11422,7 @@ yyreduce: break; case 430: -#line 4826 "Gmsh.y" +#line 4831 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -11425,7 +11430,7 @@ yyreduce: break; case 431: -#line 4831 "Gmsh.y" +#line 4836 "Gmsh.y" { int matches = 0; for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ @@ -11439,7 +11444,7 @@ yyreduce: break; case 432: -#line 4842 "Gmsh.y" +#line 4847 "Gmsh.y" { std::string s((yyvsp[(3) - (6)].c)), substr((yyvsp[(5) - (6)].c)); if(s.find(substr) != std::string::npos) @@ -11451,7 +11456,7 @@ yyreduce: break; case 433: -#line 4851 "Gmsh.y" +#line 4856 "Gmsh.y" { (yyval.d) = strlen((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -11459,7 +11464,7 @@ yyreduce: break; case 434: -#line 4856 "Gmsh.y" +#line 4861 "Gmsh.y" { (yyval.d) = strcmp((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); Free((yyvsp[(3) - (6)].c)); Free((yyvsp[(5) - (6)].c)); @@ -11467,7 +11472,7 @@ yyreduce: break; case 435: -#line 4861 "Gmsh.y" +#line 4866 "Gmsh.y" { int align = 0, font = 0, fontsize = CTX::instance()->glFontSize; if(List_Nbr((yyvsp[(3) - (4)].l)) % 2){ @@ -11494,12 +11499,12 @@ yyreduce: break; case 436: -#line 4889 "Gmsh.y" +#line 4894 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 437: -#line 4891 "Gmsh.y" +#line 4896 "Gmsh.y" { std::string struct_namespace((yyvsp[(2) - (8)].c2).char1? (yyvsp[(2) - (8)].c2).char1 : std::string("")), struct_name((yyvsp[(2) - (8)].c2).char2); @@ -11527,105 +11532,105 @@ yyreduce: break; case 438: -#line 4919 "Gmsh.y" +#line 4924 "Gmsh.y" { (yyval.c2).char1 = NULL; (yyval.c2).char2 = (yyvsp[(1) - (1)].c); ;} break; case 439: -#line 4921 "Gmsh.y" +#line 4926 "Gmsh.y" { (yyval.c2).char1 = (yyvsp[(1) - (3)].c); (yyval.c2).char2 = (yyvsp[(3) - (3)].c); ;} break; case 440: -#line 4926 "Gmsh.y" +#line 4931 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); flag_tSTRING_alloc = 1; ;} break; case 441: -#line 4935 "Gmsh.y" +#line 4940 "Gmsh.y" { (yyval.i) = 99; ;} break; case 442: -#line 4937 "Gmsh.y" +#line 4942 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; case 443: -#line 4942 "Gmsh.y" +#line 4947 "Gmsh.y" { (yyval.i) = 0; ;} break; case 444: -#line 4944 "Gmsh.y" +#line 4949 "Gmsh.y" { (yyval.i) = (yyvsp[(2) - (3)].i); ;} break; case 445: -#line 4950 "Gmsh.y" +#line 4955 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; case 446: -#line 4954 "Gmsh.y" +#line 4959 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; case 447: -#line 4958 "Gmsh.y" +#line 4963 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 448: -#line 4962 "Gmsh.y" +#line 4967 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; case 449: -#line 4966 "Gmsh.y" +#line 4971 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; case 450: -#line 4973 "Gmsh.y" +#line 4978 "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 451: -#line 4977 "Gmsh.y" +#line 4982 "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 452: -#line 4981 "Gmsh.y" +#line 4986 "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 453: -#line 4985 "Gmsh.y" +#line 4990 "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 454: -#line 4992 "Gmsh.y" +#line 4997 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); @@ -11633,14 +11638,14 @@ yyreduce: break; case 455: -#line 4997 "Gmsh.y" +#line 5002 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; case 456: -#line 5004 "Gmsh.y" +#line 5009 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -11648,14 +11653,14 @@ yyreduce: break; case 457: -#line 5009 "Gmsh.y" +#line 5014 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 458: -#line 5013 "Gmsh.y" +#line 5018 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); @@ -11663,14 +11668,14 @@ yyreduce: break; case 459: -#line 5018 "Gmsh.y" +#line 5023 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 460: -#line 5022 "Gmsh.y" +#line 5027 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -11681,7 +11686,7 @@ yyreduce: break; case 461: -#line 5030 "Gmsh.y" +#line 5035 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -11692,14 +11697,14 @@ yyreduce: break; case 462: -#line 5041 "Gmsh.y" +#line 5046 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 463: -#line 5045 "Gmsh.y" +#line 5050 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -11711,7 +11716,7 @@ yyreduce: break; case 464: -#line 5057 "Gmsh.y" +#line 5062 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -11722,7 +11727,7 @@ yyreduce: break; case 465: -#line 5065 "Gmsh.y" +#line 5070 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -11733,7 +11738,7 @@ yyreduce: break; case 466: -#line 5073 "Gmsh.y" +#line 5078 "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)); @@ -11743,7 +11748,7 @@ yyreduce: break; case 467: -#line 5080 "Gmsh.y" +#line 5085 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d)){ //|| ($1 < $3 && $5 < 0) || ($1 > $3 && $5 > 0) @@ -11756,7 +11761,7 @@ yyreduce: break; case 468: -#line 5090 "Gmsh.y" +#line 5095 "Gmsh.y" { (yyval.l) = List_Create(3, 1, sizeof(double)); int tag = (int)(yyvsp[(3) - (4)].d); @@ -11782,7 +11787,7 @@ yyreduce: break; case 469: -#line 5113 "Gmsh.y" +#line 5118 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getAllElementaryTags(0, (yyval.l)); @@ -11791,7 +11796,7 @@ yyreduce: break; case 470: -#line 5119 "Gmsh.y" +#line 5124 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getAllElementaryTags(1, (yyval.l)); @@ -11800,7 +11805,7 @@ yyreduce: break; case 471: -#line 5125 "Gmsh.y" +#line 5130 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getAllElementaryTags(2, (yyval.l)); @@ -11809,7 +11814,7 @@ yyreduce: break; case 472: -#line 5131 "Gmsh.y" +#line 5136 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getAllElementaryTags(3, (yyval.l)); @@ -11818,7 +11823,7 @@ yyreduce: break; case 473: -#line 5137 "Gmsh.y" +#line 5142 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); if(!(yyvsp[(3) - (3)].l)){ @@ -11832,7 +11837,7 @@ yyreduce: break; case 474: -#line 5148 "Gmsh.y" +#line 5153 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); if(!(yyvsp[(3) - (3)].l)){ @@ -11846,7 +11851,7 @@ yyreduce: break; case 475: -#line 5159 "Gmsh.y" +#line 5164 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); if(!(yyvsp[(3) - (3)].l)){ @@ -11860,7 +11865,7 @@ yyreduce: break; case 476: -#line 5170 "Gmsh.y" +#line 5175 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); if(!(yyvsp[(3) - (3)].l)){ @@ -11874,7 +11879,7 @@ yyreduce: break; case 477: -#line 5182 "Gmsh.y" +#line 5187 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getElementaryTagsInBoundingBox(0, (yyvsp[(5) - (16)].d), (yyvsp[(7) - (16)].d), (yyvsp[(9) - (16)].d), (yyvsp[(11) - (16)].d), (yyvsp[(13) - (16)].d), (yyvsp[(15) - (16)].d), (yyval.l)); @@ -11882,7 +11887,7 @@ yyreduce: break; case 478: -#line 5188 "Gmsh.y" +#line 5193 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getElementaryTagsInBoundingBox(1, (yyvsp[(5) - (16)].d), (yyvsp[(7) - (16)].d), (yyvsp[(9) - (16)].d), (yyvsp[(11) - (16)].d), (yyvsp[(13) - (16)].d), (yyvsp[(15) - (16)].d), (yyval.l)); @@ -11890,7 +11895,7 @@ yyreduce: break; case 479: -#line 5194 "Gmsh.y" +#line 5199 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getElementaryTagsInBoundingBox(2, (yyvsp[(5) - (16)].d), (yyvsp[(7) - (16)].d), (yyvsp[(9) - (16)].d), (yyvsp[(11) - (16)].d), (yyvsp[(13) - (16)].d), (yyvsp[(15) - (16)].d), (yyval.l)); @@ -11898,7 +11903,7 @@ yyreduce: break; case 480: -#line 5200 "Gmsh.y" +#line 5205 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getElementaryTagsInBoundingBox(3, (yyvsp[(5) - (16)].d), (yyvsp[(7) - (16)].d), (yyvsp[(9) - (16)].d), (yyvsp[(11) - (16)].d), (yyvsp[(13) - (16)].d), (yyvsp[(15) - (16)].d), (yyval.l)); @@ -11906,7 +11911,7 @@ yyreduce: break; case 481: -#line 5205 "Gmsh.y" +#line 5210 "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++){ @@ -11919,7 +11924,7 @@ yyreduce: break; case 482: -#line 5215 "Gmsh.y" +#line 5220 "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++){ @@ -11932,7 +11937,7 @@ yyreduce: break; case 483: -#line 5225 "Gmsh.y" +#line 5230 "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++){ @@ -11945,7 +11950,7 @@ yyreduce: break; case 484: -#line 5235 "Gmsh.y" +#line 5240 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -11960,7 +11965,7 @@ yyreduce: break; case 485: -#line 5248 "Gmsh.y" +#line 5253 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(3) - (4)].c))) @@ -11975,28 +11980,28 @@ yyreduce: break; case 486: -#line 5260 "Gmsh.y" +#line 5265 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; case 487: -#line 5264 "Gmsh.y" +#line 5269 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; case 488: -#line 5268 "Gmsh.y" +#line 5273 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (6)].l); ;} break; case 489: -#line 5272 "Gmsh.y" +#line 5277 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -12017,7 +12022,7 @@ yyreduce: break; case 490: -#line 5290 "Gmsh.y" +#line 5295 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -12028,7 +12033,7 @@ yyreduce: break; case 491: -#line 5298 "Gmsh.y" +#line 5303 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -12039,7 +12044,7 @@ yyreduce: break; case 492: -#line 5306 "Gmsh.y" +#line 5311 "Gmsh.y" { Msg::Barrier(); FILE *File; @@ -12071,7 +12076,7 @@ yyreduce: break; case 493: -#line 5335 "Gmsh.y" +#line 5340 "Gmsh.y" { double x0 = (yyvsp[(3) - (14)].d), x1 = (yyvsp[(5) - (14)].d), y0 = (yyvsp[(7) - (14)].d), y1 = (yyvsp[(9) - (14)].d), ys = (yyvsp[(11) - (14)].d); int N = (int)(yyvsp[(13) - (14)].d); @@ -12084,7 +12089,7 @@ yyreduce: break; case 494: -#line 5345 "Gmsh.y" +#line 5350 "Gmsh.y" { std::vector<double> tmp; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ @@ -12103,7 +12108,7 @@ yyreduce: break; case 495: -#line 5364 "Gmsh.y" +#line 5369 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -12111,21 +12116,21 @@ yyreduce: break; case 496: -#line 5369 "Gmsh.y" +#line 5374 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 497: -#line 5373 "Gmsh.y" +#line 5378 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; case 498: -#line 5377 "Gmsh.y" +#line 5382 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -12137,21 +12142,21 @@ yyreduce: break; case 499: -#line 5389 "Gmsh.y" +#line 5394 "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 500: -#line 5393 "Gmsh.y" +#line 5398 "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 501: -#line 5405 "Gmsh.y" +#line 5410 "Gmsh.y" { int flag = 0; if(gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ @@ -12171,7 +12176,7 @@ yyreduce: break; case 502: -#line 5422 "Gmsh.y" +#line 5427 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -12181,14 +12186,14 @@ yyreduce: break; case 503: -#line 5432 "Gmsh.y" +#line 5437 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 504: -#line 5436 "Gmsh.y" +#line 5441 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -12203,7 +12208,7 @@ yyreduce: break; case 505: -#line 5451 "Gmsh.y" +#line 5456 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); @@ -12211,21 +12216,21 @@ yyreduce: break; case 506: -#line 5456 "Gmsh.y" +#line 5461 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; case 507: -#line 5463 "Gmsh.y" +#line 5468 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 508: -#line 5467 "Gmsh.y" +#line 5472 "Gmsh.y" { std::string val; if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))) @@ -12241,7 +12246,7 @@ yyreduce: break; case 509: -#line 5480 "Gmsh.y" +#line 5485 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -12258,7 +12263,7 @@ yyreduce: break; case 510: -#line 5494 "Gmsh.y" +#line 5499 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -12275,7 +12280,7 @@ yyreduce: break; case 511: -#line 5511 "Gmsh.y" +#line 5516 "Gmsh.y" { (yyval.c) = treat_Struct_FullName_dot_tSTRING_String(NULL, (yyvsp[(1) - (3)].c), (yyvsp[(3) - (3)].c)); /* @@ -12304,12 +12309,12 @@ yyreduce: break; case 512: -#line 5537 "Gmsh.y" +#line 5542 "Gmsh.y" { (yyval.c) = treat_Struct_FullName_dot_tSTRING_String((yyvsp[(1) - (5)].c), (yyvsp[(3) - (5)].c), (yyvsp[(5) - (5)].c)); ;} break; case 513: -#line 5541 "Gmsh.y" +#line 5546 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -12320,7 +12325,7 @@ yyreduce: break; case 514: -#line 5549 "Gmsh.y" +#line 5554 "Gmsh.y" { std::string name = GModel::current()->getPhysicalName(0, (int)(yyvsp[(4) - (5)].d)); (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char)); @@ -12329,7 +12334,7 @@ yyreduce: break; case 515: -#line 5555 "Gmsh.y" +#line 5560 "Gmsh.y" { std::string name = GModel::current()->getPhysicalName(1, (int)(yyvsp[(4) - (5)].d)); (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char)); @@ -12338,7 +12343,7 @@ yyreduce: break; case 516: -#line 5561 "Gmsh.y" +#line 5566 "Gmsh.y" { std::string name = GModel::current()->getPhysicalName(2, (int)(yyvsp[(4) - (5)].d)); (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char)); @@ -12347,7 +12352,7 @@ yyreduce: break; case 517: -#line 5567 "Gmsh.y" +#line 5572 "Gmsh.y" { std::string name = GModel::current()->getPhysicalName(3, (int)(yyvsp[(4) - (5)].d)); (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char)); @@ -12356,21 +12361,21 @@ yyreduce: break; case 518: -#line 5576 "Gmsh.y" +#line 5581 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 519: -#line 5580 "Gmsh.y" +#line 5585 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 520: -#line 5584 "Gmsh.y" +#line 5589 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -12381,7 +12386,7 @@ yyreduce: break; case 521: -#line 5592 "Gmsh.y" +#line 5597 "Gmsh.y" { std::string exe = Msg::GetExecutableName(); (yyval.c) = (char *)Malloc(exe.size() + 1); @@ -12390,7 +12395,7 @@ yyreduce: break; case 522: -#line 5598 "Gmsh.y" +#line 5603 "Gmsh.y" { std::string action = Msg::GetOnelabAction(); (yyval.c) = (char *)Malloc(action.size() + 1); @@ -12399,7 +12404,7 @@ yyreduce: break; case 523: -#line 5604 "Gmsh.y" +#line 5609 "Gmsh.y" { const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c)); if(!env) env = ""; @@ -12410,7 +12415,7 @@ yyreduce: break; case 524: -#line 5612 "Gmsh.y" +#line 5617 "Gmsh.y" { std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -12421,7 +12426,7 @@ yyreduce: break; case 525: -#line 5620 "Gmsh.y" +#line 5625 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (4)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -12431,7 +12436,7 @@ yyreduce: break; case 526: -#line 5627 "Gmsh.y" +#line 5632 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -12442,7 +12447,7 @@ yyreduce: break; case 527: -#line 5635 "Gmsh.y" +#line 5640 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -12460,7 +12465,7 @@ yyreduce: break; case 528: -#line 5650 "Gmsh.y" +#line 5655 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -12477,7 +12482,7 @@ yyreduce: break; case 529: -#line 5664 "Gmsh.y" +#line 5669 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -12494,7 +12499,7 @@ yyreduce: break; case 530: -#line 5678 "Gmsh.y" +#line 5683 "Gmsh.y" { std::string input = (yyvsp[(3) - (8)].c); std::string substr_old = (yyvsp[(5) - (8)].c); @@ -12509,7 +12514,7 @@ yyreduce: break; case 531: -#line 5690 "Gmsh.y" +#line 5695 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -12528,7 +12533,7 @@ yyreduce: break; case 532: -#line 5706 "Gmsh.y" +#line 5711 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -12540,7 +12545,7 @@ yyreduce: break; case 533: -#line 5715 "Gmsh.y" +#line 5720 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -12552,7 +12557,7 @@ yyreduce: break; case 534: -#line 5724 "Gmsh.y" +#line 5729 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -12565,7 +12570,7 @@ yyreduce: break; case 535: -#line 5734 "Gmsh.y" +#line 5739 "Gmsh.y" { if((yyvsp[(3) - (8)].d)){ (yyval.c) = (yyvsp[(5) - (8)].c); @@ -12579,7 +12584,7 @@ yyreduce: break; case 536: -#line 5745 "Gmsh.y" +#line 5750 "Gmsh.y" { std::string in = (yyvsp[(3) - (8)].c); std::string out = in.substr((int)(yyvsp[(5) - (8)].d), (int)(yyvsp[(7) - (8)].d)); @@ -12590,7 +12595,7 @@ yyreduce: break; case 537: -#line 5753 "Gmsh.y" +#line 5758 "Gmsh.y" { std::string in = (yyvsp[(3) - (6)].c); std::string out = in.substr((int)(yyvsp[(5) - (6)].d), std::string::npos); @@ -12601,14 +12606,14 @@ yyreduce: break; case 538: -#line 5761 "Gmsh.y" +#line 5766 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 539: -#line 5765 "Gmsh.y" +#line 5770 "Gmsh.y" { char tmpstring[5000]; int i = printListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -12630,7 +12635,7 @@ yyreduce: break; case 540: -#line 5784 "Gmsh.y" +#line 5789 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -12640,7 +12645,7 @@ yyreduce: break; case 541: -#line 5791 "Gmsh.y" +#line 5796 "Gmsh.y" { std::string tmp = SplitFileName(GetAbsolutePath(gmsh_yyname))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -12649,7 +12654,7 @@ yyreduce: break; case 542: -#line 5797 "Gmsh.y" +#line 5802 "Gmsh.y" { std::string tmp = SplitFileName((yyvsp[(3) - (4)].c))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -12659,7 +12664,7 @@ yyreduce: break; case 543: -#line 5804 "Gmsh.y" +#line 5809 "Gmsh.y" { std::string tmp = GetAbsolutePath((yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -12669,12 +12674,12 @@ yyreduce: break; case 544: -#line 5811 "Gmsh.y" +#line 5816 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 545: -#line 5813 "Gmsh.y" +#line 5818 "Gmsh.y" { std::string val((yyvsp[(3) - (6)].c)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -12685,7 +12690,7 @@ yyreduce: break; case 546: -#line 5821 "Gmsh.y" +#line 5826 "Gmsh.y" { std::string out; const std::string * key_struct = NULL; @@ -12709,17 +12714,17 @@ yyreduce: break; case 547: -#line 5845 "Gmsh.y" +#line 5850 "Gmsh.y" { struct_namespace = std::string(""); (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 548: -#line 5847 "Gmsh.y" +#line 5852 "Gmsh.y" { struct_namespace = (yyvsp[(1) - (4)].c); Free((yyvsp[(1) - (4)].c)); (yyval.d) = (yyvsp[(4) - (4)].d); ;} break; case 549: -#line 5853 "Gmsh.y" +#line 5858 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(char*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].c))); @@ -12727,14 +12732,14 @@ yyreduce: break; case 550: -#line 5858 "Gmsh.y" +#line 5863 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].c))); ;} break; case 551: -#line 5866 "Gmsh.y" +#line 5871 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -12745,7 +12750,7 @@ yyreduce: break; case 552: -#line 5875 "Gmsh.y" +#line 5880 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -12756,23 +12761,23 @@ yyreduce: break; case 553: -#line 5888 "Gmsh.y" +#line 5893 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 554: -#line 5891 "Gmsh.y" +#line 5896 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 555: -#line 5895 "Gmsh.y" +#line 5900 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; /* Line 1267 of yacc.c. */ -#line 12776 "Gmsh.tab.cpp" +#line 12781 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -12986,7 +12991,7 @@ yyreturn: } -#line 5898 "Gmsh.y" +#line 5903 "Gmsh.y" void assignVariable(const std::string &name, int index, int assignType, diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index d495fc5243cb8a0e647a070b2ab3deecada6273f..3110544b26b40c132da6095b8d2789c6550f860f 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -2234,7 +2234,10 @@ Transform : List_Add($$, &s); } } - else if(action == "Boundary" || action == "CombinedBoundary"){ + else if(action == "Boundary" || + action == "CombinedBoundary" || + action == "OrientedBoundary" || + action == "CombinedOrientedBoundary"){ // boundary operations are performed directly on GModel, which enables // to compute the boundary of hybrid CAD models; this also automatically // binds all boundary entities for OCC models @@ -2244,7 +2247,9 @@ Transform : if(GModel::current()->getGEOInternals()->getChanged()) GModel::current()->getGEOInternals()->synchronize(GModel::current()); std::vector<int> in[4], out[4]; ListOfShapes2Vectors($3, in); - GModel::current()->getBoundaryTags(in, out, action == "CombinedBoundary"); + GModel::current()->getBoundaryTags + (in, out, action.find("Combined") != std::string::npos, + action.find("Oriented") != std::string::npos); Vectors2ListOfShapes(out, $$); } else{