Newer
Older
int num = (int)yyvsp[-8].d;
if(List_Nbr(yyvsp[-5].l) + (int)yyvsp[-1].d + 1 != List_Nbr(yyvsp[-3].l)){
yymsg(GERROR, "Wrong definition of Nurbs Curve %d: "
"got %d knots, need N + D + 1 = %d + %d + 1 = %d",
(int)yyvsp[-8].d, List_Nbr(yyvsp[-3].l), List_Nbr(yyvsp[-5].l), (int)yyvsp[-1].d, List_Nbr(yyvsp[-5].l) + (int)yyvsp[-1].d + 1);
List_T *temp = ListOfDouble2ListOfInt(yyvsp[-5].l);
Curve *c = Create_Curve(num, MSH_SEGM_NURBS, (int)yyvsp[-1].d, temp, yyvsp[-3].l,
List_Delete(yyvsp[-5].l);
List_Delete(yyvsp[-3].l);
yyval.s.Type = MSH_SEGM_NURBS;
yyval.s.Num = num;
;
break;}
case 96:
#line 1305 "Gmsh.y"
{
int num = (int)yyvsp[-4].d;
sortEdgesInLoop(num, temp);
EdgeLoop *l = Create_EdgeLoop(num, temp);
Tree_Add(THEM->EdgeLoops, &l);
List_Delete(temp);
List_Delete(yyvsp[-1].l);
yyval.s.Type = MSH_SEGM_LOOP;
yyval.s.Num = num;
;
break;}
case 97:
#line 1322 "Gmsh.y"
{
List_Delete(yyvsp[-9].l);
yyval.s.Type = 0;
yyval.s.Num = 0;
;
break;}
case 98:
#line 1329 "Gmsh.y"
{
int num = (int)yyvsp[-4].i;
else{
PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_LINE, temp);
List_Delete(temp);
List_Add(THEM->PhysicalGroups, &p);
}
List_Delete(yyvsp[-1].l);
yyval.s.Type = MSH_PHYSICAL_LINE;
yyval.s.Num = num;
;
break;}
case 99:
#line 1348 "Gmsh.y"
{
int num = (int)yyvsp[-4].d;
yymsg(GERROR, "Surface %d already exists", num);
}
else{
Surface *s = Create_Surface(num, MSH_SURF_PLAN);
setSurfaceGeneratrices(s, temp);
List_Delete(temp);
s->Support = s;
End_Surface(s);
Tree_Add(THEM->Surfaces, &s);
}
List_Delete(yyvsp[-1].l);
yyval.s.Type = MSH_SURF_PLAN;
yyval.s.Num = num;
;
break;}
case 100:
#line 1367 "Gmsh.y"
{
int num = (int)yyvsp[-4].d, type = 0;
yymsg(GERROR, "Surface %d already exists", num);
}
else{
double d;
}
else{
int j = List_Nbr(el->Curves);
if(j == 4){
type = MSH_SURF_REGL;
}
else if(j == 3){
type = MSH_SURF_TRIC;
}
else{
yymsg(GERROR, "Wrong definition of Ruled Surface %d: "
"%d borders instead of 3 or 4", num, j);
type = MSH_SURF_PLAN;
}
Surface *s = Create_Surface(num, type);
setSurfaceGeneratrices(s, temp);
List_Delete(temp);
s->Support = s;
End_Surface(s);
Tree_Add(THEM->Surfaces, &s);
}
}
List_Delete(yyvsp[-1].l);
yyval.s.Type = type;
yyval.s.Num = num;
;
break;}
case 101:
#line 1406 "Gmsh.y"
{
int num = (int)yyvsp[-8].d;
Surface *support = FindSurface((int)yyvsp[-4].d);
s->Support = support;
}
List_Delete(yyvsp[-2].l);
yyval.s.Type = MSH_SURF_TRIMMED;
yyval.s.Num = num;
;
break;}
case 102:
#line 1433 "Gmsh.y"
{
int num = (int)yyvsp[-16].d;
yymsg(GERROR, "Surface %d already exists", num);
}
else{
CreateNurbsSurface(num, (int)yyvsp[-4].d, (int)yyvsp[-2].d, yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l);
}
for(int i = 0; i < List_Nbr(yyvsp[-13].l); i++)
List_Delete((List_T*)List_Pointer(yyvsp[-13].l, i));
List_Delete(yyvsp[-13].l);
List_Delete(yyvsp[-10].l);
List_Delete(yyvsp[-8].l);
yyval.s.Type = MSH_SURF_NURBS;
yyval.s.Num = num;
;
break;}
case 103:
#line 1452 "Gmsh.y"
{
int num = (int)yyvsp[-16].d;
yymsg(GERROR, "Surface %d already exists", num);
}
else{
CreateNurbsSurfaceSupport(num, (int)yyvsp[-4].d, (int)yyvsp[-2].d, yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l);
}
for(int i = 0; i < List_Nbr(yyvsp[-13].l); i++)
List_Delete((List_T*)List_Pointer(yyvsp[-13].l, i));
List_Delete(yyvsp[-13].l);
List_Delete(yyvsp[-10].l);
List_Delete(yyvsp[-8].l);
yyval.s.Type = MSH_SURF_NURBS;
yyval.s.Num = num;
;
break;}
case 104:
#line 1469 "Gmsh.y"
{
int num = (int)yyvsp[-4].d;
yymsg(GERROR, "Surface loop %d already exists", num);
}
else{
SurfaceLoop *l = Create_SurfaceLoop(num, temp);
Tree_Add(THEM->SurfaceLoops, &l);
List_Delete(temp);
}
List_Delete(yyvsp[-1].l);
yyval.s.Type = MSH_SURF_LOOP;
yyval.s.Num = num;
;
break;}
case 105:
#line 1485 "Gmsh.y"
{
int num = (int)yyvsp[-4].i;
yymsg(GERROR, "Physical surface %d already exists", num);
}
else{
PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_SURFACE, temp);
List_Delete(temp);
List_Add(THEM->PhysicalGroups, &p);
}
List_Delete(yyvsp[-1].l);
yyval.s.Type = MSH_PHYSICAL_SURFACE;
yyval.s.Num = num;
;
break;}
case 106:
#line 1505 "Gmsh.y"
{
int num = (int)yyvsp[-4].d;
yymsg(GERROR, "Volume %d already exists", num);
}
else{
Volume *v = Create_Volume(num, MSH_VOLUME);
setVolumeSurfaces(v, temp);
List_Delete(temp);
Tree_Add(THEM->Volumes, &v);
}
List_Delete(yyvsp[-1].l);
yyval.s.Type = MSH_VOLUME;
yyval.s.Num = num;
;
break;}
case 107:
#line 1522 "Gmsh.y"
{
int num = (int)yyvsp[-4].d;
yymsg(GERROR, "Volume %d already exists", num);
}
else{
Volume *v = Create_Volume(num, MSH_VOLUME);
setVolumeSurfaces(v, temp);
List_Delete(temp);
Tree_Add(THEM->Volumes, &v);
}
List_Delete(yyvsp[-1].l);
yyval.s.Type = MSH_VOLUME;
yyval.s.Num = num;
;
break;}
case 108:
#line 1539 "Gmsh.y"
{
int num = (int)yyvsp[-4].i;
yymsg(GERROR, "Physical volume %d already exists", num);
}
else{
PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_VOLUME, temp);
List_Delete(temp);
List_Add(THEM->PhysicalGroups, &p);
}
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
List_Delete(yyvsp[-1].l);
yyval.s.Type = MSH_PHYSICAL_VOLUME;
yyval.s.Num = num;
;
break;}
case 109:
#line 1560 "Gmsh.y"
{
TranslateShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-1].l, 1);
yyval.l = yyvsp[-1].l;
;
break;}
case 110:
#line 1565 "Gmsh.y"
{
RotateShapes(yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l, 1);
yyval.l = yyvsp[-1].l;
;
break;}
case 111:
#line 1570 "Gmsh.y"
{
SymmetryShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-3].v[3], yyvsp[-1].l, 1);
yyval.l = yyvsp[-1].l;
;
break;}
case 112:
#line 1575 "Gmsh.y"
{
DilatShapes(yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l, 1);
yyval.l = yyvsp[-1].l;
;
break;}
case 113:
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
{ yyval.l = yyvsp[0].l; ;
break;}
case 114:
#line 1583 "Gmsh.y"
{ yyval.l = yyvsp[0].l; ;
break;}
case 115:
#line 1584 "Gmsh.y"
{ yyval.l = yyvsp[0].l; ;
break;}
case 116:
#line 1589 "Gmsh.y"
{
yyval.l = List_Create(3, 3, sizeof(Shape));
;
break;}
case 117:
#line 1593 "Gmsh.y"
{
List_Add(yyval.l, &yyvsp[0].s);
;
break;}
case 118:
#line 1597 "Gmsh.y"
{
for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
;
break;}
case 119:
#line 1613 "Gmsh.y"
{
for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
;
break;}
case 120:
#line 1629 "Gmsh.y"
{
for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
;
break;}
case 121:
#line 1645 "Gmsh.y"
{
for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
;
break;}
case 122:
#line 1666 "Gmsh.y"
{
yyval.l = List_Create(3, 3, sizeof(Shape));
for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
TheShape.Num = j;
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
List_Delete(yyvsp[-1].l);
;
break;}
case 123:
#line 1680 "Gmsh.y"
{
if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0);
Free(yyvsp[-4].c);
yyval.l = NULL;
;
break;}
case 124:
#line 1686 "Gmsh.y"
{
if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0);
Free(yyvsp[-4].c);
yyval.l = NULL;
;
break;}
case 125:
#line 1692 "Gmsh.y"
{
if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 1);
Free(yyvsp[-4].c);
yyval.l = NULL;
;
break;}
case 126:
#line 1704 "Gmsh.y"
{
for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
List_Delete(yyvsp[-1].l);
;
break;}
case 127:
#line 1713 "Gmsh.y"
{
if(!strcmp(yyvsp[-4].c, "View")){
RemoveViewByIndex((int)yyvsp[-2].d);
Free(yyvsp[-4].c);
;
break;}
case 128:
#line 1723 "Gmsh.y"
{
if(!strcmp(yyvsp[-1].c, "Meshes") || !strcmp(yyvsp[-1].c, "All")){
List_Action(THEM->PhysicalGroups, Free_PhysicalGroup);
List_Reset(THEM->PhysicalGroups);
}
Free(yyvsp[-1].c);
;
break;}
case 129:
#line 1738 "Gmsh.y"
{
if(!strcmp(yyvsp[-2].c, "Empty") && !strcmp(yyvsp[-1].c, "Views")){
for(int i = List_Nbr(CTX.post.list) - 1; i >= 0; i--){
Post_View *v = *(Post_View **) List_Pointer(CTX.post.list, i);
if(v->empty())
RemoveViewByIndex(i);
}
}
else{
yymsg(GERROR, "Unknown command 'Delete %s %s'", yyvsp[-2].c, yyvsp[-1].c);
Free(yyvsp[-2].c); Free(yyvsp[-1].c);
;
break;}
case 130:
#line 1757 "Gmsh.y"
{
for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
List_Read(yyvsp[-1].l, i, &TheShape);
ColorShape(TheShape.Type, TheShape.Num, yyvsp[-3].u);
}
List_Delete(yyvsp[-1].l);
;
break;}
case 131:
#line 1771 "Gmsh.y"
{
VisibilityShape(yyvsp[-1].c, i, 1);
Free(yyvsp[-1].c);
;
break;}
case 132:
#line 1777 "Gmsh.y"
{
VisibilityShape(yyvsp[-1].c, i, 0);
Free(yyvsp[-1].c);
;
break;}
case 133:
#line 1783 "Gmsh.y"
{
for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
VisibilityShape(TheShape.Type, TheShape.Num, 1);
List_Delete(yyvsp[-1].l);
;
break;}
case 134:
#line 1792 "Gmsh.y"
{
for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
List_Delete(yyvsp[-1].l);
;
break;}
case 135:
#line 1806 "Gmsh.y"
{
if(!strcmp(yyvsp[-2].c, "Include")){
// Warning: we *don't* close included files (to allow user
// functions in these files). If you need to include many many
// files and don't have functions in the files, use "Merge"
// instead: some OSes limit the number of files a process can
// open simultaneously. The right solution would be of course
// to modify FunctionManager to reopen the files instead of
// using the FILE pointer, but hey, I'm lazy...
Msg(STATUS2, "Reading '%s'", tmpstring);
ParseFile(tmpstring, 0, 1);
else if(!strcmp(yyvsp[-2].c, "Merge") || !strcmp(yyvsp[-2].c, "MergeWithBoundingBox")){
}
else if(!strcmp(yyvsp[-2].c, "System")){
SystemCall(yyvsp[-1].c);
Free(yyvsp[-2].c); Free(yyvsp[-1].c);
;
break;}
case 136:
#line 1851 "Gmsh.y"
{
if(!strcmp(yyvsp[-6].c, "Save") && !strcmp(yyvsp[-5].c, "View")){
Post_View **vv = (Post_View **)List_Pointer_Test(CTX.post.list, (int)yyvsp[-3].d);
Free(yyvsp[-6].c); Free(yyvsp[-5].c); Free(yyvsp[-1].c);
;
break;}
case 137:
#line 1866 "Gmsh.y"
{
if(!strcmp(yyvsp[-6].c, "Background") && !strcmp(yyvsp[-5].c, "Mesh") && !strcmp(yyvsp[-4].c, "View")){
Post_View **vv = (Post_View **)List_Pointer_Test(CTX.post.list, (int)yyvsp[-2].d);
Free(yyvsp[-6].c); Free(yyvsp[-5].c); Free(yyvsp[-4].c);
;
break;}
case 138:
#line 1877 "Gmsh.y"
{
if(!strcmp(yyvsp[-2].c, "Sleep")){
SleepInSeconds(yyvsp[-1].d);
Msg(GERROR, "Surface ReMeshing must be reinterfaced");
// ReMesh();

Christophe Geuzaine
committed
yymsg(GERROR, "Mesh directives are not (yet) allowed in scripts");
yymsg(GERROR, "Mesh directives are not (yet) allowed in scripts");
Free(yyvsp[-2].c);
;
break;}
case 139:
#line 1897 "Gmsh.y"
{
GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0);
yymsg(GERROR, "Unknown action '%s' or plugin '%s'", yyvsp[-1].c, yyvsp[-4].c);
Free(yyvsp[-4].c); Free(yyvsp[-1].c);
;
break;}
case 140:
#line 1907 "Gmsh.y"
{
if(!strcmp(yyvsp[-1].c, "ElementsFromAllViews"))
Free(yyvsp[-1].c);
;
break;}
case 141:
#line 1929 "Gmsh.y"
{
SetBoundingBox(yyvsp[-12].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
;
break;}
case 144:
#line 1943 "Gmsh.y"
{
;
break;}
case 145:
#line 1955 "Gmsh.y"
{
LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d;
LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d;
yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
ImbricatedLoop++;
if(ImbricatedLoop > MAX_RECUR_LOOPS-1){
yymsg(GERROR, "Reached maximum number of imbricated loops");
ImbricatedLoop = MAX_RECUR_LOOPS-1;
}
if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor");
;
break;}
case 146:
#line 1970 "Gmsh.y"
{
LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d;
LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d;
LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d;
yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
ImbricatedLoop++;
if(ImbricatedLoop > MAX_RECUR_LOOPS-1){
yymsg(GERROR, "Reached maximum number of imbricated loops");
ImbricatedLoop = MAX_RECUR_LOOPS-1;
}
if((yyvsp[-1].d > 0. && yyvsp[-5].d > yyvsp[-3].d) || (yyvsp[-1].d < 0. && yyvsp[-5].d < yyvsp[-3].d))
;
break;}
case 147:
#line 1986 "Gmsh.y"
{
LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d;
LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d;
if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){
TheSymbol.val = List_Create(1, 1, sizeof(double));
yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
ImbricatedLoop++;
if(ImbricatedLoop > MAX_RECUR_LOOPS-1){
yymsg(GERROR, "Reached maximum number of imbricated loops");
ImbricatedLoop = MAX_RECUR_LOOPS-1;
}
if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor");
;
break;}
case 148:
#line 2012 "Gmsh.y"
{
LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d;
LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d;
LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d;
LoopControlVariablesNameTab[ImbricatedLoop] = yyvsp[-8].c;
if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){
TheSymbol.val = List_Create(1, 1, sizeof(double));
yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
ImbricatedLoop++;
if(ImbricatedLoop > MAX_RECUR_LOOPS-1){
yymsg(GERROR, "Reached maximum number of imbricated loops");
ImbricatedLoop = MAX_RECUR_LOOPS-1;
}
if((yyvsp[-1].d > 0. && yyvsp[-5].d > yyvsp[-3].d) || (yyvsp[-1].d < 0. && yyvsp[-5].d < yyvsp[-3].d))
if(ImbricatedLoop <= 0){
yymsg(GERROR, "Invalid For/EndFor loop");
ImbricatedLoop = 0;
double x0 = LoopControlVariablesTab[ImbricatedLoop-1][0];
double x1 = LoopControlVariablesTab[ImbricatedLoop-1][1];
double step = LoopControlVariablesTab[ImbricatedLoop-1][2];
int do_next = (step > 0.) ? (x0+step <= x1) : (x0+step >= x1);
if(do_next){
LoopControlVariablesTab[ImbricatedLoop-1][0] +=
LoopControlVariablesTab[ImbricatedLoop-1][2];
Symbol TheSymbol;
TheSymbol.Name = LoopControlVariablesNameTab[ImbricatedLoop-1];
Symbol *pSymbol;
if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol)))
yymsg(GERROR, "Unknown loop variable");
else
*(double*)List_Pointer_Fast(pSymbol->val, 0) +=
LoopControlVariablesTab[ImbricatedLoop-1][2];
}
fsetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]);
yylineno = yylinenoImbricatedLoopsTab[ImbricatedLoop-1];
}
else{
ImbricatedLoop--;
;
break;}
case 150:
#line 2071 "Gmsh.y"
{
if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno))
yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c);
if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno))

Christophe Geuzaine
committed
yymsg(GERROR, "Error while exiting function");
;
break;}
case 152:
#line 2083 "Gmsh.y"
{
if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c, &yyin, yyname, yylineno))
yymsg(GERROR, "Unknown function %s", yyvsp[-1].c);
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
;
break;}
case 153:
#line 2089 "Gmsh.y"
{
if(!yyvsp[-1].d) skip_until("If", "EndIf");
;
break;}
case 154:
#line 2093 "Gmsh.y"
{
;
break;}
case 155:
#line 2102 "Gmsh.y"
{
yyval.l = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(TRANSLATE, yyvsp[-1].l,
yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], 0., 0., 0., 0., 0., 0., 0.,
NULL, yyval.l);
List_Delete(yyvsp[-1].l);
;
break;}
case 156:
#line 2110 "Gmsh.y"
{
yyval.l = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(ROTATE, yyvsp[-1].l,
0., 0., 0., yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d,
NULL, yyval.l);
List_Delete(yyvsp[-1].l);
;
break;}
case 157:
#line 2118 "Gmsh.y"
{
yyval.l = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-1].l,
yyvsp[-10].v[0], yyvsp[-10].v[1], yyvsp[-10].v[2], yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d,
NULL, yyval.l);
List_Delete(yyvsp[-1].l);
;
break;}
case 158:
#line 2126 "Gmsh.y"
{
;
break;}
case 159:
#line 2131 "Gmsh.y"
{
yyval.l = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(TRANSLATE, yyvsp[-3].l,
yyvsp[-5].v[0], yyvsp[-5].v[1], yyvsp[-5].v[2], 0., 0., 0., 0., 0., 0., 0.,
&extr, yyval.l);
List_Delete(yyvsp[-3].l);
;
break;}
case 160:
#line 2139 "Gmsh.y"
{
;
break;}
case 161:
#line 2144 "Gmsh.y"
{
yyval.l = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(ROTATE, yyvsp[-3].l,
0., 0., 0., yyvsp[-10].v[0], yyvsp[-10].v[1], yyvsp[-10].v[2], yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], yyvsp[-6].d,
&extr, yyval.l);
List_Delete(yyvsp[-3].l);
;
break;}
case 162:
#line 2152 "Gmsh.y"
{
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
;
break;}
case 163:
#line 2157 "Gmsh.y"
{
yyval.l = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-3].l,
yyvsp[-12].v[0], yyvsp[-12].v[1], yyvsp[-12].v[2], yyvsp[-10].v[0], yyvsp[-10].v[1], yyvsp[-10].v[2], yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], yyvsp[-6].d,
&extr, yyval.l);
List_Delete(yyvsp[-3].l);
;
break;}
case 164:
#line 2167 "Gmsh.y"
{
yyval.l = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-4].d,
yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2], 0., 0., 0., 0., 0., 0., 0.,
NULL, yyval.l);
;
break;}
case 165:
#line 2174 "Gmsh.y"
{
yyval.l = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-4].d,
yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2], 0., 0., 0., 0., 0., 0., 0.,
NULL, yyval.l);
;
break;}
case 166:
#line 2181 "Gmsh.y"
{
yyval.l = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-4].d,
yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2], 0., 0., 0., 0., 0., 0., 0.,
NULL, yyval.l);
;
break;}
case 167:
#line 2188 "Gmsh.y"
{
yyval.l = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-8].d,
0., 0., 0., yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].v[0], yyvsp[-4].v[1], yyvsp[-4].v[2], yyvsp[-2].d,
NULL, yyval.l);
;
break;}
case 168: