Newer
Older
Free((yyvsp[-4].c));
(yyval.l) = NULL;
;}
break;
case 120:
{
for(int i = 0; i < List_Nbr((yyvsp[-1].l)); i++){
List_Read((yyvsp[-1].l), i, &TheShape);
List_Delete((yyvsp[-1].l));
;}
break;
case 121:
{
if(!strcmp((yyvsp[-4].c), "View")){
RemoveViewByIndex((int)(yyvsp[-2].d));
yymsg(GERROR, "Unknown command 'Delete %s'", (yyvsp[-4].c));
Free((yyvsp[-4].c));
;}
break;
case 122:
{
if(!strcmp((yyvsp[-1].c), "Meshes") || !strcmp((yyvsp[-1].c), "All")){
else if(!strcmp((yyvsp[-1].c), "Physicals")){
List_Action(THEM->PhysicalGroups, Free_PhysicalGroup);
List_Reset(THEM->PhysicalGroups);
}
yymsg(GERROR, "Unknown command 'Delete %s'", (yyvsp[-1].c));
Free((yyvsp[-1].c));
;}
break;
case 123:
{
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 124:
{
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 125:
int m = (CTX.visibility_mode == 2) ? VIS_MESH :
((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH);
SetVisibilityByNumber((yyvsp[-1].c), i, m);
Free((yyvsp[-1].c));
;}
break;
case 126:
{
for(int i = 2; i < 6; i++)
SetVisibilityByNumber((yyvsp[-1].c), i, 0);
Free((yyvsp[-1].c));
;}
break;
case 127:
int m = (CTX.visibility_mode == 2) ? VIS_MESH :
((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH);
for(int i = 0; i < List_Nbr((yyvsp[-1].l)); i++){
List_Read((yyvsp[-1].l), i, &TheShape);
List_Delete((yyvsp[-1].l));
;}
break;
case 128:
{
for(int i = 0; i < List_Nbr((yyvsp[-1].l)); i++){
List_Read((yyvsp[-1].l), i, &TheShape);
List_Delete((yyvsp[-1].l));
;}
break;
case 129:
{
if(!strcmp((yyvsp[-2].c), "Include")){
FixRelativePath((yyvsp[-1].c), tmpstring);
// 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...
else if(!strcmp((yyvsp[-2].c), "Print")){
FixRelativePath((yyvsp[-1].c), tmpstring);
else if(!strcmp((yyvsp[-2].c), "Save")){
FixRelativePath((yyvsp[-1].c), tmpstring);
else if(!strcmp((yyvsp[-2].c), "Merge") || !strcmp((yyvsp[-2].c), "MergeWithBoundingBox")){
FixRelativePath((yyvsp[-1].c), tmpstring);
}
else if(!strcmp((yyvsp[-2].c), "System")){
SystemCall((yyvsp[-1].c));
yymsg(GERROR, "Unknown command '%s'", (yyvsp[-2].c));
Free((yyvsp[-2].c)); Free((yyvsp[-1].c));
;}
break;
case 130:
{
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));
FixRelativePath((yyvsp[-1].c), tmpstring);
yymsg(GERROR, "Unknown command '%s'", (yyvsp[-6].c));
Free((yyvsp[-6].c)); Free((yyvsp[-5].c)); Free((yyvsp[-1].c));
;}
break;
case 131:
{
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));
yymsg(GERROR, "Unknown command '%s'", (yyvsp[-6].c));
Free((yyvsp[-6].c)); Free((yyvsp[-5].c)); Free((yyvsp[-4].c));
;}
break;
case 132:
{
if(!strcmp((yyvsp[-2].c), "Sleep")){
SleepInSeconds((yyvsp[-1].d));
else if(!strcmp((yyvsp[-2].c), "Remesh")){
else if(!strcmp((yyvsp[-2].c), "Mesh")){

Christophe Geuzaine
committed
yymsg(GERROR, "Mesh directives are not (yet) allowed in scripts");
yymsg(GERROR, "Unknown command '%s'", (yyvsp[-2].c));
Free((yyvsp[-2].c));
;}
break;
case 133:
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 134:
{
if(!strcmp((yyvsp[-1].c), "ElementsFromAllViews"))
else if(!strcmp((yyvsp[-1].c), "ElementsFromVisibleViews"))
else if(!strcmp((yyvsp[-1].c), "ElementsByViewName"))
else if(!strcmp((yyvsp[-1].c), "TimeStepsFromAllViews"))
else if(!strcmp((yyvsp[-1].c), "TimeStepsFromVisibleViews"))
else if(!strcmp((yyvsp[-1].c), "TimeStepsByViewName"))
else if(!strcmp((yyvsp[-1].c), "Views"))
else if(!strcmp((yyvsp[-1].c), "TimeSteps"))
Free((yyvsp[-1].c));
;}
break;
case 135:
SetBoundingBox((yyvsp[-12].d), (yyvsp[-10].d), (yyvsp[-8].d), (yyvsp[-6].d), (yyvsp[-4].d), (yyvsp[-2].d));
;}
break;
case 138:
{
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 140:
{
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)))
{
LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[-3].d);
LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[-1].d);
LoopControlVariablesNameTab[ImbricatedLoop] = (yyvsp[-6].c);
if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){
TheSymbol.val = List_Create(1, 1, sizeof(double));
List_Put(TheSymbol.val, 0, &(yyvsp[-3].d));
List_Write(pSymbol->val, 0, &(yyvsp[-3].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 142:
{
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));
List_Put(TheSymbol.val, 0, &(yyvsp[-5].d));
List_Write(pSymbol->val, 0, &(yyvsp[-5].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)))
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--;
{
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");
{
if(!FunctionManager::Instance()->enterFunction((yyvsp[-1].c), &yyin, yyname, yylineno))
yymsg(GERROR, "Unknown function %s", (yyvsp[-1].c));
//FIXME: wee leak $2
;}
break;
case 147:
{
if(!(yyvsp[-1].d)) skip_until("If", "EndIf");
;}
break;
case 148:
{
;}
break;
case 149:
{
(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 150:
{
(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 151:
{
(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 152:
{
(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 154:
{
(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 156:
{
(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 158:
{
(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 159:
{
(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 160:
{
(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 161:
{
(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 162:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_SEGM_LINE, (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 163:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_SURF_PLAN, (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 164:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[-10].d),
(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].v)[0], (yyvsp[-4].v)[1], (yyvsp[-4].v)[2], (yyvsp[-2].d),
NULL, (yyval.l));
;}
break;
case 165:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[-10].d),
(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].v)[0], (yyvsp[-4].v)[1], (yyvsp[-4].v)[2], (yyvsp[-2].d),
NULL, (yyval.l));
;}
break;
case 166:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[-10].d),
(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].v)[0], (yyvsp[-4].v)[1], (yyvsp[-4].v)[2], (yyvsp[-2].d),
NULL, (yyval.l));
;}
break;
case 167:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[-8].d),
(yyvsp[-6].v)[0], (yyvsp[-6].v)[1], (yyvsp[-6].v)[2], 0., 0., 0., 0., 0., 0., 0.,
&extr, (yyval.l));
;}
break;
case 169:
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[-8].d),
(yyvsp[-6].v)[0], (yyvsp[-6].v)[1], (yyvsp[-6].v)[2], 0., 0., 0., 0., 0., 0., 0.,
&extr, (yyval.l));
;}
break;
case 171:
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[-8].d),
(yyvsp[-6].v)[0], (yyvsp[-6].v)[1], (yyvsp[-6].v)[2], 0., 0., 0., 0., 0., 0., 0.,
&extr, (yyval.l));
;}
break;
case 173:
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[-12].d),
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));
;}
break;
case 175:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[-12].d),
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));
;}
break;
case 177:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[-12].d),
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));
;}
break;
case 179:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[-14].d),
(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));
;}
break;
case 181:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[-14].d),
(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));
;}
break;
case 183:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[-14].d),
(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));
;}
break;
case 185:
{
;}
break;
case 186:
{
;}
break;
case 187:
double d;
extr.mesh.ExtrudeMesh = true;
extr.mesh.NbLayer = List_Nbr((yyvsp[-6].l));
if(List_Nbr((yyvsp[-6].l)) == List_Nbr((yyvsp[-4].l)) && List_Nbr((yyvsp[-6].l)) == List_Nbr((yyvsp[-2].l))){
extr.mesh.NbElmLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
extr.mesh.ZonLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
extr.mesh.hLayer = (double*)Malloc(extr.mesh.NbLayer*sizeof(double));
for(int i = 0; i < List_Nbr((yyvsp[-6].l)); i++){
List_Read((yyvsp[-6].l), i, &d);
extr.mesh.NbElmLayer[i] = (d>0)?(int)d:1;
extr.mesh.ZonLayer[i] = (int)d;
extr.mesh.hLayer[i] = d;
}
}
else{

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong layer definition {%d, %d, %d}",
List_Nbr((yyvsp[-6].l)), List_Nbr((yyvsp[-4].l)), List_Nbr((yyvsp[-2].l)));
}
List_Delete((yyvsp[-6].l));
List_Delete((yyvsp[-4].l));
List_Delete((yyvsp[-2].l));
;}
break;
case 188:
double d;
extr.mesh.ExtrudeMesh = true;
extr.mesh.NbLayer = List_Nbr((yyvsp[-4].l));
if(List_Nbr((yyvsp[-4].l)) == List_Nbr((yyvsp[-2].l))){
extr.mesh.NbElmLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
extr.mesh.ZonLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
extr.mesh.hLayer = (double*)Malloc(extr.mesh.NbLayer*sizeof(double));
for(int i = 0; i < List_Nbr((yyvsp[-4].l)); i++){
List_Read((yyvsp[-4].l), i, &d);
extr.mesh.NbElmLayer[i] = (d>0)?(int)d:1;
extr.mesh.hLayer[i] = d;
}
}
else{

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong layer definition {%d, %d}",
List_Nbr((yyvsp[-4].l)), List_Nbr((yyvsp[-2].l)));
}
List_Delete((yyvsp[-4].l));
List_Delete((yyvsp[-2].l));
;}
break;
case 189:
{
for(int i = 0; i < List_Nbr((yyvsp[-3].l)); i++){
c->Method = TRANSFINI;
c->ipar[0] = ((yyvsp[-1].d)>2)?(int)(yyvsp[-1].d):2;
c->ipar[1] = sign(d);
c->dpar[0] = 1.0;
List_Delete((yyvsp[-3].l));
;}
break;
case 191:
{
for(int i = 0; i < List_Nbr((yyvsp[-6].l)); i++){
c->Method = TRANSFINI;
c->ipar[0] = ((yyvsp[-4].d)>2)?(int)(yyvsp[-4].d):2;
c->ipar[1] = sign(d); /* Progresion : code 1 ou -1 */
List_Delete((yyvsp[-6].l));
;}
break;
case 192:
{
for(int i = 0; i < List_Nbr((yyvsp[-6].l)); i++){
c->Method = TRANSFINI;
c->ipar[0] = ((yyvsp[-4].d)>2)?(int)(yyvsp[-4].d):2;
c->ipar[1] = 2*sign(d); /* Bump : code 2 ou -2 */
List_Delete((yyvsp[-6].l));
;}
break;
case 193:
{
Surface *s = FindSurface((int)(yyvsp[-4].d), THEM);
yymsg(WARNING, "Unknown surface %d", (int)(yyvsp[-4].d));
s->Method = TRANSFINI;

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong definition of Transfinite Surface %d: "
"%d points instead of 3 or 4" , (int)(yyvsp[-4].d), k);
List_Delete((yyvsp[-1].l));
;}
break;
case 194:
{
Surface *s = FindSurface((int)(yyvsp[-5].d), THEM);
yymsg(WARNING, "Unknown surface %d", (int)(yyvsp[-5].d));
if(k != 3 && k != 4){
yymsg(GERROR, "Wrong definition of Transfinite Surface %d: "
"%d points instead of 3 or 4" , (int)(yyvsp[-5].d), k);
}
else{
List_Reset(s->TrsfPoints);
else if (!strcmp((yyvsp[-1].c), "Left"))
s->Recombine_Dir = -1;
else
s->Recombine_Dir = 0;
for(int i = 0; i < k; i++){
double d;
int j = (int)fabs(d);
Vertex *v = FindPoint(j, THEM);