Newer
Older
case 298:
#line 4021 "Gmsh.y"
setSurfaceEmbeddedCurves(s, (yyvsp[(3) - (10)].l));
}
else{
GFace *gf = GModel::current()->getFaceByTag((int)(yyvsp[(8) - (10)].d));
if(gf){
for(int i = 0; i < List_Nbr((yyvsp[(3) - (10)].l)); i++){
int iCurve;
List_Read((yyvsp[(3) - (10)].l), i, &iCurve);
GEdge *ge = GModel::current()->getEdgeByTag(iCurve);
if(ge)
gf->addEmbeddedEdge(ge);
else
yymsg(0, "Unknown line %d", iCurve);
}
}
else
yymsg(0, "Unknown surface %d", (int)(yyvsp[(8) - (10)].d));
}
case 299:
#line 4044 "Gmsh.y"

Christophe Geuzaine
committed
{
Msg::Error("Point in Volume not implemented yet");

Christophe Geuzaine
committed
;}
break;
case 300:
#line 4048 "Gmsh.y"
{
Msg::Error("Line in Volume not implemented yet");
;}
break;
case 301:
#line 4052 "Gmsh.y"

Christophe Geuzaine
committed
{
Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d));
if(v){
setVolumeEmbeddedSurfaces(v, (yyvsp[(3) - (10)].l));
}
else{
GRegion *gr = GModel::current()->getRegionByTag((int)(yyvsp[(8) - (10)].d));
if(gr){
for(int i = 0; i < List_Nbr((yyvsp[(3) - (10)].l)); i++){
int iSurface;
List_Read((yyvsp[(3) - (10)].l), i, &iSurface);
GFace *gf = GModel::current()->getFaceByTag(iSurface);
if(gf)
gr->addEmbeddedFace(gf);
else
yymsg(0, "Unknown surface %d", iSurface);
}
}
else
yymsg(0, "Unknown region %d", (int)(yyvsp[(8) - (10)].d));
}

Christophe Geuzaine
committed
;}
break;
case 302:
#line 4075 "Gmsh.y"

Christophe Geuzaine
committed
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
if(!(yyvsp[(3) - (4)].l)){
List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces);
if(List_Nbr(tmp)){
for(int i = 0; i < List_Nbr(tmp); i++){
Surface *s;
List_Read(tmp, i, &s);
s->ReverseMesh = 1;
}
}
else{
for(GModel::fiter it = GModel::current()->firstFace();
it != GModel::current()->lastFace(); it++){
(*it)->meshAttributes.reverseMesh = 1;
}
}
List_Delete(tmp);
}
else{
for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
double d;
List_Read((yyvsp[(3) - (4)].l), i, &d);
Surface *s = FindSurface((int)d);
if(s){
s->ReverseMesh = 1;
}
else{
GFace *gf = GModel::current()->getFaceByTag((int)d);
if(gf){
gf->meshAttributes.reverseMesh = 1;
}
else
yymsg(1, "Unknown surface %d", (int)d);
}
}
List_Delete((yyvsp[(3) - (4)].l));
}
case 303:
#line 4114 "Gmsh.y"

Christophe Geuzaine
committed
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
if(!(yyvsp[(3) - (4)].l)){
List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Curves);
if(List_Nbr(tmp)){
for(int i = 0; i < List_Nbr(tmp); i++){
Curve *c;
List_Read(tmp, i, &c);
c->ReverseMesh = 1;
}
}
else{
for(GModel::eiter it = GModel::current()->firstEdge();
it != GModel::current()->lastEdge(); it++){
(*it)->meshAttributes.reverseMesh = 1;
}
}
List_Delete(tmp);
}
else{
for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
double d;
List_Read((yyvsp[(3) - (4)].l), i, &d);
Curve *c = FindCurve((int)d);
if(c){
c->ReverseMesh = 1;
}
else{
GEdge *ge = GModel::current()->getEdgeByTag((int)d);
if(ge){
ge->meshAttributes.reverseMesh = 1;
}
else
yymsg(1, "Unknown surface %d", (int)d);
}
}
List_Delete((yyvsp[(3) - (4)].l));
}
case 304:
#line 4159 "Gmsh.y"
ReplaceAllDuplicates();
case 305:
#line 4163 "Gmsh.y"
if(!strcmp((yyvsp[(2) - (3)].c), "Geometry"))
ReplaceAllDuplicates();
else if(!strcmp((yyvsp[(2) - (3)].c), "Mesh"))
GModel::current()->removeDuplicateMeshVertices(CTX::instance()->geom.tolerance);
else
yymsg(0, "Unknown coherence command");
Free((yyvsp[(2) - (3)].c));
case 306:
#line 4173 "Gmsh.y"
if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){
double d;
List_Read((yyvsp[(4) - (6)].l), 0, &d);
Vertex *target = FindPoint((int)d);
if(!target)
yymsg(0, "Could not find Point %d", (int)d);
else{
double x = target->Pos.X, y = target->Pos.Y, z = target->Pos.Z;
for(int i = 1; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){
List_Read((yyvsp[(4) - (6)].l), i, &d);
Vertex *source = FindPoint((int)d);
if(!source) yymsg(0, "Could not find Point %d", (int)d);
if(target && source){
source->Typ = target->Typ;
source->Pos.X = x;
source->Pos.Y = y;
source->Pos.Z = z;
source->boundaryLayerIndex = target->boundaryLayerIndex;
}
ExtrudeParams::normalsCoherence.push_back(SPoint3(x, y, z));
}
}
else
yymsg(0, "Need at least two points to merge");
ReplaceAllDuplicates();
List_Delete((yyvsp[(4) - (6)].l));
case 307:
#line 4207 "Gmsh.y"
case 308:
#line 4208 "Gmsh.y"
case 309:
#line 4209 "Gmsh.y"
Matti Pellika
committed
break;
case 310:
#line 4214 "Gmsh.y"
Matti Pellika
committed
std::vector<int> domain, subdomain, dim;
Matti Pellika
committed
for(int i = 0; i < 4; i++) dim.push_back(i);
Matti Pellika
committed
GModel::current()->addHomologyRequest((yyvsp[(1) - (2)].c), domain, subdomain, dim);
case 311:
#line 4220 "Gmsh.y"
{
Matti Pellika
committed
std::vector<int> domain, subdomain, dim;
for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){
double d;
List_Read((yyvsp[(3) - (5)].l), i, &d);
domain.push_back((int)d);
Matti Pellika
committed
for(int i = 0; i < 4; i++) dim.push_back(i);
Matti Pellika
committed
GModel::current()->addHomologyRequest((yyvsp[(1) - (5)].c), domain, subdomain, dim);
List_Delete((yyvsp[(3) - (5)].l));
case 312:
#line 4232 "Gmsh.y"
Matti Pellika
committed
std::vector<int> domain, subdomain, dim;
for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){
double d;
List_Read((yyvsp[(3) - (7)].l), i, &d);
domain.push_back((int)d);
}
for(int i = 0; i < List_Nbr((yyvsp[(5) - (7)].l)); i++){
double d;
List_Read((yyvsp[(5) - (7)].l), i, &d);
subdomain.push_back((int)d);
}
Matti Pellika
committed
for(int i = 0; i < 4; i++) dim.push_back(i);
Matti Pellika
committed
GModel::current()->addHomologyRequest((yyvsp[(1) - (7)].c), domain, subdomain, dim);
List_Delete((yyvsp[(3) - (7)].l));
List_Delete((yyvsp[(5) - (7)].l));
case 313:
#line 4250 "Gmsh.y"
Matti Pellika
committed
{
std::vector<int> domain, subdomain, dim;
for(int i = 0; i < List_Nbr((yyvsp[(6) - (10)].l)); i++){
Matti Pellika
committed
double d;
Matti Pellika
committed
domain.push_back((int)d);
}
for(int i = 0; i < List_Nbr((yyvsp[(8) - (10)].l)); i++){
Matti Pellika
committed
double d;
Matti Pellika
committed
subdomain.push_back((int)d);
}
for(int i = 0; i < List_Nbr((yyvsp[(3) - (10)].l)); i++){
Matti Pellika
committed
double d;
Matti Pellika
committed
dim.push_back((int)d);
}
GModel::current()->addHomologyRequest((yyvsp[(1) - (10)].c), domain, subdomain, dim);
List_Delete((yyvsp[(6) - (10)].l));
List_Delete((yyvsp[(8) - (10)].l));
List_Delete((yyvsp[(3) - (10)].l));
case 314:
#line 4277 "Gmsh.y"
case 315:
#line 4278 "Gmsh.y"
break;
case 316:
#line 4279 "Gmsh.y"
case 317:
#line 4280 "Gmsh.y"
case 318:
#line 4281 "Gmsh.y"
Matti Pellika
committed
break;
case 319:
#line 4282 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;}
case 320:
#line 4283 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;}
case 321:
#line 4284 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;}
Matti Pellika
committed
break;
case 322:
#line 4286 "Gmsh.y"
yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));

Christophe Geuzaine
committed
case 323:
#line 4292 "Gmsh.y"
{ (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;}

Christophe Geuzaine
committed
case 324:
#line 4293 "Gmsh.y"
{ (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;}

Christophe Geuzaine
committed
case 325:
#line 4294 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;}

Christophe Geuzaine
committed
case 326:
#line 4295 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;}

Christophe Geuzaine
committed
case 327:
#line 4296 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;}

Christophe Geuzaine
committed
case 328:
#line 4297 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;}

Christophe Geuzaine
committed
case 329:
#line 4298 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;}
#line 4299 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;}
#line 4300 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;}

Christophe Geuzaine
committed
#line 4301 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;}
#line 4302 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;}
#line 4303 "Gmsh.y"
{ (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;}
#line 4304 "Gmsh.y"
{ (yyval.d) = log((yyvsp[(3) - (4)].d)); ;}
#line 4305 "Gmsh.y"
{ (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;}
#line 4306 "Gmsh.y"
{ (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;}
#line 4307 "Gmsh.y"
{ (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;}
#line 4308 "Gmsh.y"
{ (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;}
#line 4309 "Gmsh.y"
{ (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;}
#line 4310 "Gmsh.y"
{ (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;}

Christophe Geuzaine
committed
#line 4311 "Gmsh.y"
{ (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;}
#line 4312 "Gmsh.y"
{ (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;}
#line 4313 "Gmsh.y"
{ (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}
#line 4314 "Gmsh.y"
{ (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;}
#line 4315 "Gmsh.y"
{ (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;}
#line 4316 "Gmsh.y"
{ (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;}
#line 4317 "Gmsh.y"
{ (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;}
#line 4318 "Gmsh.y"
{ (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;}
#line 4319 "Gmsh.y"
{ (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;}
#line 4320 "Gmsh.y"
{ (yyval.d) = floor((yyvsp[(3) - (4)].d) + 0.5); ;}
{ (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
#line 4322 "Gmsh.y"
{ (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
#line 4323 "Gmsh.y"
{ (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}
#line 4324 "Gmsh.y"
{ (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}
#line 4327 "Gmsh.y"
{ (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;}
#line 4328 "Gmsh.y"
{ (yyval.d) = log((yyvsp[(3) - (4)].d)); ;}
#line 4329 "Gmsh.y"
{ (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;}
#line 4330 "Gmsh.y"
{ (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;}
#line 4331 "Gmsh.y"
{ (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;}
#line 4332 "Gmsh.y"
{ (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;}
#line 4333 "Gmsh.y"
{ (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;}
#line 4334 "Gmsh.y"
{ (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;}
#line 4335 "Gmsh.y"
{ (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;}
#line 4336 "Gmsh.y"
{ (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;}
#line 4337 "Gmsh.y"
{ (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}
#line 4338 "Gmsh.y"
{ (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;}
#line 4339 "Gmsh.y"
{ (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;}
#line 4340 "Gmsh.y"
{ (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;}
#line 4341 "Gmsh.y"
{ (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;}
#line 4342 "Gmsh.y"
{ (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;}
#line 4343 "Gmsh.y"
{ (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;}
break;
#line 4344 "Gmsh.y"
{ (yyval.d) = floor((yyvsp[(3) - (4)].d) + 0.5); ;}
{ (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
Matti Pellika
committed
break;
#line 4346 "Gmsh.y"
{ (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
#line 4347 "Gmsh.y"
{ (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}
#line 4348 "Gmsh.y"
{ (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}
#line 4357 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (1)].d); ;}
Matti Pellika
committed
break;
#line 4358 "Gmsh.y"
{ (yyval.d) = 3.141592653589793; ;}
#line 4359 "Gmsh.y"
{ (yyval.d) = Msg::GetCommRank(); ;}
#line 4360 "Gmsh.y"
{ (yyval.d) = Msg::GetCommSize(); ;}
#line 4361 "Gmsh.y"
{ (yyval.d) = GetGmshMajorVersion(); ;}
#line 4362 "Gmsh.y"
{ (yyval.d) = GetGmshMinorVersion(); ;}

Christophe Geuzaine
committed
break;
case 384:
#line 4363 "Gmsh.y"
{ (yyval.d) = GetGmshPatchVersion(); ;}
break;
case 385:
#line 4364 "Gmsh.y"
{ (yyval.d) = Cpu(); ;}
break;
case 386:
#line 4365 "Gmsh.y"
{ (yyval.d) = GetMemoryUsage()/1024./1024.; ;}
break;
case 387:
#line 4370 "Gmsh.y"
if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c));
(yyval.d) = 0.;

Christophe Geuzaine
committed
else{
gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (1)].c)]);
if(s.value.empty()){

Christophe Geuzaine
committed
yymsg(0, "Uninitialized variable '%s'", (yyvsp[(1) - (1)].c));
(yyval.d) = 0.;
}
else

Christophe Geuzaine
committed
}
case 388:
#line 4388 "Gmsh.y"
int index = (int)(yyvsp[(3) - (4)].d);
if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (4)].c));
(yyval.d) = 0.;
else{
gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (4)].c)]);
if((int)s.value.size() < index + 1){
yymsg(0, "Uninitialized variable '%s[%d]'", (yyvsp[(1) - (4)].c), index);
(yyval.d) = 0.;
}
else
(yyval.d) = s.value[index];
case 389:
#line 4406 "Gmsh.y"
if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){
yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c));
(yyval.d) = 0.;
else{
gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(2) - (4)].c)]);
(yyval.d) = s.value.size();
}
case 390:
#line 4418 "Gmsh.y"
if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c));
(yyval.d) = 0.;

Christophe Geuzaine
committed
else{
gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (2)].c)]);
if(s.value.empty()){

Christophe Geuzaine
committed
yymsg(0, "Uninitialized variable '%s'", (yyvsp[(1) - (2)].c));
(yyval.d) = 0.;
}
else

Christophe Geuzaine
committed
}
case 391:
#line 4435 "Gmsh.y"
int index = (int)(yyvsp[(3) - (5)].d);
if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (5)].c));
(yyval.d) = 0.;
else{
gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (5)].c)]);
if((int)s.value.size() < index + 1){
yymsg(0, "Uninitialized variable '%s[%d]'", (yyvsp[(1) - (5)].c), index);
(yyval.d) = 0.;
}
else
(yyval.d) = (s.value[index] += (yyvsp[(5) - (5)].i));
case 392:
#line 4456 "Gmsh.y"
NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d));
case 393:
#line 4461 "Gmsh.y"
NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d));
case 394:
#line 4466 "Gmsh.y"
double d = 0.;
if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){
d += (yyvsp[(4) - (4)].i);
NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d);
(yyval.d) = d;
case 395:
#line 4476 "Gmsh.y"
double d = 0.;
if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){
d += (yyvsp[(7) - (7)].i);
NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d);
(yyval.d) = d;
case 396:
#line 4486 "Gmsh.y"
(yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d));
case 397:
#line 4491 "Gmsh.y"
std::string s((yyvsp[(3) - (6)].c)), substr((yyvsp[(5) - (6)].c));
if(s.find(substr) != std::string::npos)
(yyval.d) = 1.;
else
(yyval.d) = 0.;
Free((yyvsp[(3) - (6)].c)); Free((yyvsp[(5) - (6)].c));
case 398:
#line 4500 "Gmsh.y"
{
(yyval.d) = strcmp((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c));
Free((yyvsp[(3) - (6)].c)); Free((yyvsp[(5) - (6)].c));
;}
break;
case 399:
#line 4505 "Gmsh.y"
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
int align = 0, font = 0, fontsize = CTX::instance()->glFontSize;
if(List_Nbr((yyvsp[(3) - (4)].l)) % 2){
yyerror("Number of text attributes should be even");
}
else{
for(int i = 0 ; i < List_Nbr((yyvsp[(3) - (4)].l)); i += 2){
char *s1, *s2; List_Read((yyvsp[(3) - (4)].l), i, &s1); List_Read((yyvsp[(3) - (4)].l), i + 1, &s2);
std::string key(s1), val(s2);
Free(s1); Free(s2);
#if defined(HAVE_OPENGL)
if(key == "Font")
font = drawContext::global()->getFontIndex(val.c_str());
else if(key == "FontSize")
fontsize = atoi(val.c_str());
else if(key == "Align")
align = drawContext::global()->getFontAlign(val.c_str());
#endif
}
}
List_Delete((yyvsp[(3) - (4)].l));
(yyval.d) = (double)((align<<16)|(font<<8)|(fontsize));
case 400:
#line 4532 "Gmsh.y"
memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double));
case 401:
#line 4536 "Gmsh.y"
for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i];
case 402:
#line 4540 "Gmsh.y"
for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i];
case 403:
#line 4544 "Gmsh.y"
for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i];
case 404:
#line 4548 "Gmsh.y"
for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i];
case 405:
#line 4555 "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);
case 406:
#line 4559 "Gmsh.y"
Matti Pellika
committed
{
(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;
Matti Pellika
committed
break;
case 407:
#line 4563 "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 408:
#line 4567 "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 409:
#line 4574 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(List_T*));
List_Add((yyval.l), &((yyvsp[(1) - (1)].l)));
case 410:
#line 4579 "Gmsh.y"
case 411:
#line 4586 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(double));
List_Add((yyval.l), &((yyvsp[(1) - (1)].d)));
case 412:
#line 4591 "Gmsh.y"
case 413:
#line 4595 "Gmsh.y"
case 414:
#line 4600 "Gmsh.y"
case 415:
#line 4604 "Gmsh.y"
{
(yyval.l) = (yyvsp[(3) - (4)].l);
for(int i = 0; i < List_Nbr((yyval.l)); i++){
double *pd = (double*)List_Pointer((yyval.l), i);
(*pd) = - (*pd);
case 416:
#line 4612 "Gmsh.y"
{
(yyval.l) = (yyvsp[(4) - (5)].l);
for(int i = 0; i < List_Nbr((yyval.l)); i++){
double *pd = (double*)List_Pointer((yyval.l), i);
(*pd) *= (yyvsp[(1) - (5)].d);
case 417:
#line 4623 "Gmsh.y"
break;
case 418:
#line 4627 "Gmsh.y"
{
if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all"))
(yyval.l) = 0;
else{
yyerror("Unknown special string for list replacement");
(yyval.l) = List_Create(2, 1, sizeof(double));