Newer
Older

Christophe Geuzaine
committed
if(!(pColOpt = (unsigned int (*) (int, int, unsigned int))Get_ColorOption(yyvsp[-3].c, pColCat)))

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown color option '%s[%d].Color.%s'", yyvsp[-10].c, (int)yyvsp[-8].d, yyvsp[-3].c);

Christophe Geuzaine
committed
else
pColOpt((int)yyvsp[-8].d,GMSH_SET|GMSH_GUI,yyvsp[-1].u) ;
}
;
break;}

Christophe Geuzaine
committed
case 224:
#line 1472 "Gmsh.y"
GmshColorTable *ct = Get_ColorTable(0);

Christophe Geuzaine
committed
yymsg(GERROR, "View[%d] does not exist", 0);
else{
ct->size = List_Nbr(yyvsp[-1].l);
if(ct->size > COLORTABLE_NBMAX_COLOR)

Christophe Geuzaine
committed
yymsg(GERROR, "Too many (%d>%d) colors in View[%d].ColorTable",
ct->size, COLORTABLE_NBMAX_COLOR, 0);
else
for(i=0 ; i<ct->size ; i++) List_Read(yyvsp[-1].l, i, &ct->table[i]);
if(ct->size == 1){
ct->size = 2;
ct->table[1] = ct->table[0];
}

Christophe Geuzaine
committed
case 225:
#line 1492 "Gmsh.y"
{
GmshColorTable *ct = Get_ColorTable((int)yyvsp[-6].d);

Christophe Geuzaine
committed
if(!ct)

Christophe Geuzaine
committed
yymsg(GERROR, "View[%d] does not exist", (int)yyvsp[-6].d);

Christophe Geuzaine
committed
ct->size = List_Nbr(yyvsp[-1].l);
if(ct->size > COLORTABLE_NBMAX_COLOR)

Christophe Geuzaine
committed
yymsg(GERROR, "Too many (%d>%d) colors in View[%d].ColorTable",

Christophe Geuzaine
committed
ct->size, COLORTABLE_NBMAX_COLOR, (int)yyvsp[-6].d);
else
for(i=0 ; i<ct->size ; i++) List_Read(yyvsp[-1].l, i, &ct->table[i]);
if(ct->size == 1){
ct->size = 2;
ct->table[1] = ct->table[0];
}
}
;
break;}

Christophe Geuzaine
committed
case 226:
#line 1514 "Gmsh.y"
if(CTX.default_plugins){
try {
GMSH_PluginManager::Instance()->SetPluginOption(yyvsp[-6].c,yyvsp[-3].c,yyvsp[-1].d);
}
catch (...) {

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown option '%s' or plugin '%s'",yyvsp[-3].c,yyvsp[-6].c);

Christophe Geuzaine
committed
case 227:
#line 1526 "Gmsh.y"
if(CTX.default_plugins){
try {
GMSH_PluginManager::Instance()->SetPluginOption(yyvsp[-6].c,yyvsp[-3].c,yyvsp[-1].c);
}
catch (...) {

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown option '%s' or plugin '%s'",yyvsp[-3].c,yyvsp[-6].c);

Christophe Geuzaine
committed
case 228:
#line 1546 "Gmsh.y"
{

Christophe Geuzaine
committed
Cdbpts101((int)yyvsp[-4].d,yyvsp[-1].v[0],yyvsp[-1].v[1],yyvsp[-1].v[2],yyvsp[-1].v[3],yyvsp[-1].v[4]);
yyval.s.Type = MSH_POINT;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 229:
#line 1553 "Gmsh.y"
{
Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_POINT,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
yyval.s.Type = MSH_PHYSICAL_POINT;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 230:
#line 1559 "Gmsh.y"
{
Vertex *v;
Attractor *a;
double p;
int ip;
for(int i=0;i<List_Nbr(yyvsp[-9].l);i++){
List_Read(yyvsp[-9].l,i,&p);
ip = (int)p;

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Point %d", ip);
else{
a = Create_Attractor(List_Nbr(THEM->Metric->Attractors)+1,
yyvsp[-6].d,yyvsp[-4].d,yyvsp[-2].d,v,NULL,NULL);
List_Add(THEM->Metric->Attractors,&a);
}
}
;
break;}

Christophe Geuzaine
committed
case 231:
#line 1578 "Gmsh.y"
{
for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
List_Read(yyvsp[-3].l,i,&d);

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Point %d", (int)d);
else
v->lc = yyvsp[-1].d;
}
;
break;}

Christophe Geuzaine
committed
case 232:
#line 1592 "Gmsh.y"
{
Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_LINE,1,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
yyval.s.Type = MSH_SEGM_LINE;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 233:
#line 1598 "Gmsh.y"
{
Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_SPLN,3,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
yyval.s.Type = MSH_SEGM_SPLN;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 234:
#line 1604 "Gmsh.y"
{
Curve *c;
Attractor *a;
double p;
int ip;
for(int i=0;i<List_Nbr(yyvsp[-9].l);i++){
List_Read(yyvsp[-9].l,i,&p);
ip = (int)p;
c = FindCurve(ip,THEM);
if(!c)

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Curve %d", ip);
else{
a = Create_Attractor(List_Nbr(THEM->Metric->Attractors)+1,
yyvsp[-6].d,yyvsp[-4].d,yyvsp[-2].d,NULL,c,NULL);
List_Add(THEM->Metric->Attractors,&a);
}
}
;
break;}

Christophe Geuzaine
committed
case 235:
#line 1623 "Gmsh.y"
{
Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_CIRC,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
yyval.s.Type = MSH_SEGM_CIRC ;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 236:
#line 1629 "Gmsh.y"

Christophe Geuzaine
committed
{
Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_ELLI,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
yyval.s.Type = MSH_SEGM_ELLI ;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 237:
#line 1635 "Gmsh.y"
{
List_T *temp;
int i,j;
double d;
temp = List_Create(List_Nbr(yyvsp[-3].l),1,sizeof(int));
for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
List_Read(yyvsp[-3].l,i,&d);
j = (int)d;
List_Add(temp,&j);
}
AddCircleInDataBase ((int) yyvsp[-6].d, MSH_SEGM_CIRC, temp, yyvsp[-1].v);
List_Delete(temp);
yyval.s.Type = MSH_SEGM_CIRC ;
yyval.s.Num = (int)yyvsp[-6].d;
;
break;}

Christophe Geuzaine
committed
case 238:
#line 1652 "Gmsh.y"
{
Cdbseg101((int)yyvsp[-14].d,MSH_SEGM_PARAMETRIC,2,NULL,NULL,-1,-1,yyvsp[-10].d,yyvsp[-8].d,yyvsp[-6].c,yyvsp[-4].c,yyvsp[-2].c);
yyval.s.Type = MSH_SEGM_PARAMETRIC ;
yyval.s.Num = (int)yyvsp[-14].d;
;
break;}

Christophe Geuzaine
committed
case 239:
#line 1658 "Gmsh.y"
{
Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_LINE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
yyval.s.Type = MSH_PHYSICAL_LINE;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 240:
#line 1664 "Gmsh.y"
{
yyval.s.Type = MSH_SEGM_LOOP;
Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 241:
#line 1670 "Gmsh.y"
{
if(List_Nbr(yyvsp[-1].l) > 3){
Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_BSPLN,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
yyval.s.Type = MSH_SEGM_BSPLN;
yyval.s.Num = (int)yyvsp[-4].d;
}
else

Christophe Geuzaine
committed
yymsg(GERROR, "Too few control points for BSpline %d (%d < 4)", (int)yyvsp[-4].d,
List_Nbr(yyvsp[-1].l));
;
break;}

Christophe Geuzaine
committed
case 242:
#line 1681 "Gmsh.y"
{
if(List_Nbr(yyvsp[-1].l) > 3){
Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_BEZIER,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
yyval.s.Type = MSH_SEGM_BSPLN;
yyval.s.Num = (int)yyvsp[-4].d;
}
else

Christophe Geuzaine
committed
yymsg(GERROR, "Too few control points for Bezier %d (%d < 4)", (int)yyvsp[-4].d,
List_Nbr(yyvsp[-1].l));

Christophe Geuzaine
committed
case 243:
#line 1692 "Gmsh.y"
{
List_T *Temp;
int i;
double d;
if(List_Nbr(yyvsp[-5].l) + (int)yyvsp[-1].d + 1 != List_Nbr(yyvsp[-3].l)){

Christophe Geuzaine
committed
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);
else{
Temp = List_Create(List_Nbr(yyvsp[-5].l),1,sizeof(int));
for(i=0;i<List_Nbr(yyvsp[-5].l);i++) {
List_Read(yyvsp[-5].l,i,&d);
j = (int)d;
List_Add(Temp,&j);
}
AddCurveInDataBase ((int)yyvsp[-8].d,MSH_SEGM_NURBS,(int)yyvsp[-1].d,Temp,yyvsp[-3].l,-1,-1,0.,1.);
List_Delete(Temp);
;
break;}

Christophe Geuzaine
committed
case 244:
#line 1717 "Gmsh.y"
{
Cdbz101((int)yyvsp[-4].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
yyval.s.Type = MSH_SURF_PLAN;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 245:
#line 1723 "Gmsh.y"
{
Surface *s,*support;

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown Surface %d", (int)yyvsp[-4].d);
else{
Cdbz101((int)yyvsp[-8].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-2].l,NULL);
s = FindSurface((int)yyvsp[-8].d,THEM);

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown Surface %d", (int)yyvsp[-8].d);
else{
s->Typ = MSH_SURF_TRIMMED;
s->Support = support;
yyval.s.Type = MSH_SURF_TRIMMED;
}
;
break;}

Christophe Geuzaine
committed
case 246:
#line 1742 "Gmsh.y"
List_Read(yyvsp[-1].l,0,&d);
i = (int)d;
EdgeLoop *el = FindEdgeLoop(i,THEM);
if(!el)

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown Line Loop %d", i);
else{
j = List_Nbr(el->Curves);
if(j==4)
yyval.s.Type = MSH_SURF_REGL;
else if(j==3)
yyval.s.Type = MSH_SURF_TRIC;
else

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong definition of Ruled Surface %d: "
(int)yyvsp[-4].d, j);
Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
yyval.s.Num = (int)yyvsp[-4].d;
}
;
break;}

Christophe Geuzaine
committed
case 247:
#line 1765 "Gmsh.y"
CreateNurbsSurface ( (int) yyvsp[-16].d , (int)yyvsp[-4].d , (int)yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l);
yyval.s.Type = MSH_SURF_NURBS;
yyval.s.Num = (int)yyvsp[-16].d;
;
break;}

Christophe Geuzaine
committed
case 248:
#line 1773 "Gmsh.y"
CreateNurbsSurfaceSupport ((int)yyvsp[-16].d, (int) yyvsp[-4].d , (int) yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l);
;
break;}

Christophe Geuzaine
committed
case 249:
#line 1777 "Gmsh.y"
Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_SURFACE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
yyval.s.Type = MSH_PHYSICAL_SURFACE;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 250:
#line 1783 "Gmsh.y"
Cdbz101((int)yyvsp[-4].d,MSH_SURF_LOOP,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
yyval.s.Type = MSH_SURF_LOOP;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 251:
#line 1792 "Gmsh.y"
{
Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
yyval.s.Type = MSH_VOLUME;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 252:
#line 1798 "Gmsh.y"
{
Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
yyval.s.Type = MSH_VOLUME;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 253:
#line 1804 "Gmsh.y"
{
Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
yyval.s.Type = MSH_PHYSICAL_VOLUME;
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}

Christophe Geuzaine
committed
case 254:
#line 1815 "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;}

Christophe Geuzaine
committed
case 255:
#line 1820 "Gmsh.y"
RotateShapes(yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l);
yyval.l = yyvsp[-1].l;
;
break;}

Christophe Geuzaine
committed
case 256:
#line 1825 "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;}

Christophe Geuzaine
committed
case 257:
#line 1830 "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;
;

Christophe Geuzaine
committed
case 258:
#line 1837 "Gmsh.y"

Christophe Geuzaine
committed
case 259:
#line 1838 "Gmsh.y"

Christophe Geuzaine
committed
case 260:
#line 1839 "Gmsh.y"

Christophe Geuzaine
committed
{ yyval.l = yyvsp[0].l; ;
break;}

Christophe Geuzaine
committed
case 261:
#line 1844 "Gmsh.y"
{
yyval.l = List_Create(3,3,sizeof(Shape));
;
break;}

Christophe Geuzaine
committed
case 262:
#line 1848 "Gmsh.y"
{
List_Add(yyval.l,&yyvsp[0].s);
yyval.l = yyvsp[-1].l;
;
break;}

Christophe Geuzaine
committed
case 263:
#line 1853 "Gmsh.y"
{
for(i=0;i<List_Nbr(yyvsp[-2].l);i++){
List_Read(yyvsp[-2].l, i, &d);
TheShape.Num = (int)d;
Vertex *v = FindPoint(TheShape.Num,THEM);
if(!v)

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Point %d", TheShape.Num);
else{
TheShape.Type = MSH_POINT;
List_Add(yyval.l,&TheShape);
}
}
yyval.l = yyvsp[-5].l;
;
break;}

Christophe Geuzaine
committed
case 264:
#line 1868 "Gmsh.y"
{
for(i=0;i<List_Nbr(yyvsp[-2].l);i++){
List_Read(yyvsp[-2].l, i, &d);
TheShape.Num = (int)d;
Curve *c = FindCurve(TheShape.Num,THEM);
if(!c)

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Curve %d", TheShape.Num);
else{
TheShape.Type = c->Typ;
List_Add(yyval.l,&TheShape);
}
}
yyval.l = yyvsp[-5].l;
;
break;}

Christophe Geuzaine
committed
case 265:
#line 1883 "Gmsh.y"
{
for(i=0;i<List_Nbr(yyvsp[-2].l);i++){
List_Read(yyvsp[-2].l, i, &d);
TheShape.Num = (int)d;
Surface *s = FindSurface(TheShape.Num,THEM);
if(!s)

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Surface %d", TheShape.Num);
else{
TheShape.Type = s->Typ;
List_Add(yyval.l,&TheShape);
}
}
yyval.l = yyvsp[-5].l;
;
break;}

Christophe Geuzaine
committed
case 266:
#line 1903 "Gmsh.y"
{
yyval.l = List_Create(3,3,sizeof(Shape));
for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
List_Read (yyvsp[-1].l,i,&TheShape);
CopyShape(TheShape.Type,TheShape.Num,&j);
TheShape.Num = j;
List_Add(yyval.l,&TheShape);
}
;
break;}

Christophe Geuzaine
committed
case 267:
#line 1913 "Gmsh.y"
{
if(!strcmp(yyvsp[-4].c, "View")) DuplicateView((int)yyvsp[-2].d,0);
;
break;}
case 268:
#line 1923 "Gmsh.y"
{
for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
List_Read (yyvsp[-1].l,i,&TheShape);
DeleteShape(TheShape.Type,TheShape.Num);
}
;
break;}
case 269:
#line 1930 "Gmsh.y"
if(!strcmp(yyvsp[-4].c, "View")) FreeView((int)yyvsp[-2].d);
;
break;}
case 270:
#line 1934 "Gmsh.y"
{
Init_Mesh(THEM, 1);
;
break;}
case 271:
#line 1943 "Gmsh.y"

Christophe Geuzaine
committed
{
for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
List_Read (yyvsp[-1].l,i,&TheShape);
ColorShape(TheShape.Type,TheShape.Num,yyvsp[-3].u);
}
;
break;}
case 272:
#line 1955 "Gmsh.y"
if(!strcmp(yyvsp[-2].c, "Include")){
yyinTab[RecursionLevel++] = yyin;
strcpy(tmpstring, yyname);
i = strlen(yyname)-1 ;
while(i >= 0 && yyname[i] != '/' && yyname[i] != '\\') i-- ;
tmpstring[i+1] = '\0';
strcat(tmpstring,yyvsp[-1].c);
if((yyin = fopen(tmpstring,"r"))){
Msg(INFO, "Including '%s'", tmpstring);
strcpy(yynameTab[RecursionLevel-1],yyname);
yylinenoTab[RecursionLevel-1]=yylineno;
yylineno=1;
while(!feof(yyin)){
yyparse();
}
// FIXME: If we do fclose, we cannot call a Function defined
// in another file...
yyin = yyinTab[--RecursionLevel];
strcpy(yyname,yynameTab[RecursionLevel]);
yylineno = yylinenoTab[RecursionLevel];

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown file '%s'", tmpstring) ;
yyin = yyinTab[--RecursionLevel];
}
else if(!strcmp(yyvsp[-2].c, "Print")){
if(!CTX.batch) CreateOutputFile(yyvsp[-1].c, CTX.print.format);
CreateOutputFile(yyvsp[-1].c, CTX.mesh.format);
else if(!strcmp(yyvsp[-2].c, "Merge")){
FILE *ff = yyin;
MergeProblem(yyvsp[-1].c);
yyin = ff;
}
else if(!strcmp(yyvsp[-2].c, "MergeWithBoundingBox")){
FILE *ff = yyin;
MergeProblemWithBoundingBox(yyvsp[-1].c);
yyin = ff;
}
else if(!strcmp(yyvsp[-2].c, "Open")){
FILE *ff = yyin;
OpenProblem(yyvsp[-1].c);
yyin = ff;
}
else if(!strcmp(yyvsp[-2].c, "System")){

Christophe Geuzaine
committed
Msg(INFO, "Executing system call \"%s\"", yyvsp[-1].c);

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown command '%s'", yyvsp[-2].c);
#line 2030 "Gmsh.y"
if(!strcmp(yyvsp[-2].c, "Sleep")){
if(GetTime() - sleep_time > (long)(yyvsp[-1].d*1.e6)) break;
}
}
else if(!strcmp(yyvsp[-2].c, "Mesh")){
//Maillage_Dimension_0(THEM);
//mai3d(THEM,(int)$2);

Christophe Geuzaine
committed
yymsg(GERROR, "Mesh directives are not (yet) allowed in scripts");

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown command '%s'", yyvsp[-2].c);
#line 2050 "Gmsh.y"
if(CTX.default_plugins)
GMSH_PluginManager::Instance()->Action(yyvsp[-4].c,yyvsp[-1].c,0);
#line 2057 "Gmsh.y"
#line 2061 "Gmsh.y"
if(Tree_Nbr(THEM->Points) != Last_NumberOfPoints){
Last_NumberOfPoints = Tree_Nbr(THEM->Points);
Replot();
#line 2083 "Gmsh.y"
{
LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ;
LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ;
LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ;
LoopControlVariablesNameTab[ImbricatedLoop] = "" ;
fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
ImbricatedLoop++;
break;}
#line 2093 "Gmsh.y"
{
LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ;
LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ;
LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ;
LoopControlVariablesNameTab[ImbricatedLoop] = "" ;
fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
ImbricatedLoop++;
#line 2103 "Gmsh.y"
{
LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ;
LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ;
LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ;
LoopControlVariablesNameTab[ImbricatedLoop] = yyvsp[-6].c ;
TheSymbol.Name = yyvsp[-6].c;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){
TheSymbol.val = List_Create(1,1,sizeof(double));
List_Put(TheSymbol.val, 0, &yyvsp[-3].d);
List_Add(Symbol_L, &TheSymbol);
}
else{
List_Write(pSymbol->val, 0, &yyvsp[-3].d);
}
fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
ImbricatedLoop++;
#line 2124 "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*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){
TheSymbol.val = List_Create(1,1,sizeof(double));
List_Put(TheSymbol.val, 0, &yyvsp[-5].d);
List_Add(Symbol_L, &TheSymbol);
}
else{
List_Write(pSymbol->val, 0, &yyvsp[-5].d);
}
fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
ImbricatedLoop++;
#line 2145 "Gmsh.y"
if(LoopControlVariablesTab[ImbricatedLoop-1][1] >
LoopControlVariablesTab[ImbricatedLoop-1][0]){
LoopControlVariablesTab[ImbricatedLoop-1][0] +=
LoopControlVariablesTab[ImbricatedLoop-1][2];
if(strlen(LoopControlVariablesNameTab[ImbricatedLoop-1])){
TheSymbol.Name = LoopControlVariablesNameTab[ImbricatedLoop-1];
pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols);
*(double*)List_Pointer_Fast(pSymbol->val, 0) +=
LoopControlVariablesTab[ImbricatedLoop-1][2] ;
fsetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]);
yylineno = yylinenoImbricatedLoopsTab[ImbricatedLoop-1];
ImbricatedLoop--;
}
break;}
#line 2166 "Gmsh.y"
if(!FunctionManager::Instance()->createFunction(yyvsp[0].c,yyin,yyname,yylineno))

Christophe Geuzaine
committed
yymsg(GERROR, "Redefinition of function %s",yyvsp[0].c);
#line 2172 "Gmsh.y"
if(!FunctionManager::Instance()->leaveFunction(&yyin,yyname,yylineno))

Christophe Geuzaine
committed
yymsg(GERROR, "Error while exiting function");
#line 2177 "Gmsh.y"
if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c,&yyin,yyname,yylineno))

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown function %s",yyvsp[-1].c);
#line 2182 "Gmsh.y"
#line 2186 "Gmsh.y"
#line 2198 "Gmsh.y"
{
Extrude_ProtudePoint(TRANSLATE,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],
0.,0.,0.,0.,0.,0.,0.,
&pc,&prc,NULL);
;
break;}
#line 2205 "Gmsh.y"
{
Extrude_ProtudePoint(ROTATE,(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,
;
break;}
#line 2212 "Gmsh.y"
{
Curve *pc, *prc;
Extrude_ProtudePoint(TRANSLATE_ROTATE,(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,
&pc,&prc,NULL);
;
break;}
#line 2222 "Gmsh.y"
{
Extrude_ProtudeCurve(TRANSLATE,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],
0.,0.,0.,0.,0.,0.,0.,1,NULL);
;
break;}
#line 2227 "Gmsh.y"
{
Extrude_ProtudeCurve(ROTATE,(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,1,NULL);
;
break;}
#line 2232 "Gmsh.y"
{
Extrude_ProtudeCurve(TRANSLATE_ROTATE,(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,1,NULL);
;
break;}
#line 2237 "Gmsh.y"
{
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
;
break;}
#line 2242 "Gmsh.y"
Extrude_ProtudeCurve(TRANSLATE,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],
0.,0.,0.,0.,0.,0.,0.,1,&extr);
#line 2247 "Gmsh.y"
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
#line 2252 "Gmsh.y"
Extrude_ProtudeCurve(ROTATE,(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,1,&extr);
#line 2257 "Gmsh.y"
{
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
;
break;}
#line 2262 "Gmsh.y"
{
Extrude_ProtudeCurve(TRANSLATE_ROTATE,(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,1,&extr);
break;}
#line 2270 "Gmsh.y"
Extrude_ProtudeSurface(TRANSLATE,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],
0.,0.,0.,0.,0.,0.,0.,0,NULL);
#line 2275 "Gmsh.y"
{
Extrude_ProtudeSurface(ROTATE,(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,0,NULL);
;
break;}
#line 2280 "Gmsh.y"
Extrude_ProtudeSurface(TRANSLATE_ROTATE,(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,0,NULL);
#line 2285 "Gmsh.y"
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
#line 2290 "Gmsh.y"
{
int vol = NEWREG();
Extrude_ProtudeSurface(TRANSLATE,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],
0.,0.,0.,0.,0.,0.,0.,vol,&extr);
;
break;}
#line 2296 "Gmsh.y"
{
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
;
break;}
#line 2302 "Gmsh.y"
{
int vol = NEWREG();
Extrude_ProtudeSurface(ROTATE,(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,vol,&extr);
;
break;}
#line 2308 "Gmsh.y"
{
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
;
break;}
#line 2314 "Gmsh.y"
{
int vol = NEWREG();
Extrude_ProtudeSurface(TRANSLATE_ROTATE,(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,vol,&extr);
;
break;}

Christophe Geuzaine
committed
case 308:
#line 2323 "Gmsh.y"

Christophe Geuzaine
committed
case 309:
#line 2326 "Gmsh.y"
{
;
break;}
case 310:
#line 2332 "Gmsh.y"
{
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;
List_Read(yyvsp[-2].l,i,&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);
#line 2358 "Gmsh.y"
{
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.ZonLayer[i] = 0;
List_Read(yyvsp[-2].l,i,&d);
extr.mesh.hLayer[i] = d;
}
}
else{