Newer
Older

Christophe Geuzaine
committed
case 134:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1660 "Gmsh.y"
int num = (int)(yyvsp[(4) - (8)].d);
yymsg(0, "Surface %d already exists", num);
Emilie Marchandise
committed
Surface *s = Create_Surface(num, MSH_SURF_COMPOUND);
for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){
s->compound.push_back((int)*(double*)List_Pointer((yyvsp[(7) - (8)].l), i));
}
Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s);
List_Delete((yyvsp[(7) - (8)].l));

Christophe Geuzaine
committed
case 135:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1678 "Gmsh.y"
int num = (int)(yyvsp[(4) - (12)].d);
yymsg(0, "Surface %d already exists", num);
for(int i = 0; i < List_Nbr((yyvsp[(7) - (12)].l)); i++)
s->compound.push_back((int)*(double*)List_Pointer((yyvsp[(7) - (12)].l), i));
for (int i = 0; i < List_Nbr((yyvsp[(10) - (12)].l)); i++){
if(i > 3){
yymsg(0, "Too many boundary specifiers in compound surface");
break;
}
List_T *l = *(List_T**)List_Pointer((yyvsp[(10) - (12)].l), i);
s->compoundBoundary[i].push_back((int)*(double*)List_Pointer(l, j));
}
}
Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s);
List_Delete((yyvsp[(7) - (12)].l));
for (int i = 0; i < List_Nbr((yyvsp[(10) - (12)].l)); i++)
List_Delete(*(List_T**)List_Pointer((yyvsp[(10) - (12)].l), i));
List_Delete((yyvsp[(10) - (12)].l));
Free((yyvsp[(8) - (12)].c));

Christophe Geuzaine
committed
case 136:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1708 "Gmsh.y"

Christophe Geuzaine
committed
case 137:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1712 "Gmsh.y"
int num = (int)(yyvsp[(5) - (9)].i);
if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){
yymsg(0, "Physical surface %d already exists", num);
List_T *temp = ListOfDouble2ListOfInt((yyvsp[(8) - (9)].l));
PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_SURFACE, temp);
List_Delete(temp);
List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p);
List_Delete((yyvsp[(8) - (9)].l));
(yyval.s).Type = MSH_PHYSICAL_SURFACE;

Christophe Geuzaine
committed
case 138:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1732 "Gmsh.y"
yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead");
yymsg(0, "Volume %d already exists", num);
Volume *v = Create_Volume(num, MSH_VOLUME);
List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l));
setVolumeSurfaces(v, temp);
List_Delete(temp);
Tree_Add(GModel::current()->getGEOInternals()->Volumes, &v);
List_Delete((yyvsp[(7) - (8)].l));
(yyval.s).Type = MSH_VOLUME;
(yyval.s).Num = num;

Christophe Geuzaine
committed
case 139:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1750 "Gmsh.y"
yymsg(0, "Volume %d already exists", num);
Volume *v = Create_Volume(num, MSH_VOLUME);
List_T *temp = ListOfDouble2ListOfInt((yyvsp[(6) - (7)].l));
setVolumeSurfaces(v, temp);
List_Delete(temp);
Tree_Add(GModel::current()->getGEOInternals()->Volumes, &v);
List_Delete((yyvsp[(6) - (7)].l));
(yyval.s).Type = MSH_VOLUME;
(yyval.s).Num = num;

Christophe Geuzaine
committed
case 140:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1767 "Gmsh.y"
{
int num = (int)(yyvsp[(4) - (8)].d);
if(FindVolume(num)){
yymsg(0, "Volume %d already exists", num);
Volume *v = Create_Volume(num, MSH_VOLUME_COMPOUND);
for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++)
v->compound.push_back((int)*(double*)List_Pointer((yyvsp[(7) - (8)].l), i));
Tree_Add(GModel::current()->getGEOInternals()->Volumes, &v);
}
List_Delete((yyvsp[(7) - (8)].l));
(yyval.s).Type = MSH_VOLUME_COMPOUND;
(yyval.s).Num = num;

Christophe Geuzaine
committed
case 141:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1783 "Gmsh.y"

Christophe Geuzaine
committed
{
curPhysDim = 3;

Christophe Geuzaine
committed
break;

Christophe Geuzaine
committed
case 142:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1787 "Gmsh.y"

Christophe Geuzaine
committed
int num = (int)(yyvsp[(5) - (9)].i);
yymsg(0, "Physical volume %d already exists", num);
List_T *temp = ListOfDouble2ListOfInt((yyvsp[(8) - (9)].l));
PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_VOLUME, temp);
List_Delete(temp);
List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p);

Christophe Geuzaine
committed
List_Delete((yyvsp[(8) - (9)].l));

Christophe Geuzaine
committed
case 143:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1809 "Gmsh.y"
{
TranslateShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(4) - (5)].l));
(yyval.l) = (yyvsp[(4) - (5)].l);

Christophe Geuzaine
committed
case 144:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1814 "Gmsh.y"
{
RotateShapes((yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d), (yyvsp[(10) - (11)].l));
(yyval.l) = (yyvsp[(10) - (11)].l);

Christophe Geuzaine
committed
case 145:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1819 "Gmsh.y"
{
SymmetryShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(2) - (5)].v)[3], (yyvsp[(4) - (5)].l));
(yyval.l) = (yyvsp[(4) - (5)].l);

Christophe Geuzaine
committed
case 146:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1824 "Gmsh.y"
{
DilatShapes((yyvsp[(3) - (9)].v)[0], (yyvsp[(3) - (9)].v)[1], (yyvsp[(3) - (9)].v)[2], (yyvsp[(5) - (9)].d), (yyvsp[(8) - (9)].l));
(yyval.l) = (yyvsp[(8) - (9)].l);

Christophe Geuzaine
committed
case 147:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1829 "Gmsh.y"
if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){
for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
Shape TheShape;
List_Read((yyvsp[(3) - (4)].l), i, &TheShape);
CopyShape(TheShape.Type, TheShape.Num, &TheShape.Num);
List_Add((yyval.l), &TheShape);
}
}
else if(!strcmp((yyvsp[(1) - (4)].c), "Boundary")){
BoundaryShapes((yyvsp[(3) - (4)].l), (yyval.l), false);
}
else if(!strcmp((yyvsp[(1) - (4)].c), "CombinedBoundary")){
BoundaryShapes((yyvsp[(3) - (4)].l), (yyval.l), true);
else{
yymsg(0, "Unknown command on multiple shapes: '%s'", (yyvsp[(1) - (4)].c));
}
Free((yyvsp[(1) - (4)].c));

Christophe Geuzaine
committed
case 148:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1852 "Gmsh.y"
(yyval.l) = List_Create(2, 1, sizeof(Shape));
IntersectCurvesWithSurface((yyvsp[(4) - (9)].l), (int)(yyvsp[(8) - (9)].d), (yyval.l));
List_Delete((yyvsp[(4) - (9)].l));

Christophe Geuzaine
committed
case 149:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1858 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape*));
List_T *tmp = ListOfDouble2ListOfInt((yyvsp[(7) - (9)].l));
SplitCurve((int)(yyvsp[(4) - (9)].d), tmp, (yyval.l));

Christophe Geuzaine
committed
case 150:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1868 "Gmsh.y"
{ (yyval.l) = (yyvsp[(1) - (1)].l); }

Christophe Geuzaine
committed
case 151:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1869 "Gmsh.y"
{ (yyval.l) = (yyvsp[(1) - (1)].l); }

Christophe Geuzaine
committed
case 152:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1874 "Gmsh.y"

Christophe Geuzaine
committed
case 153:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1878 "Gmsh.y"

Christophe Geuzaine
committed
case 154:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1882 "Gmsh.y"
double d;
List_Read((yyvsp[(4) - (6)].l), i, &d);
Shape TheShape;
TheShape.Num = (int)d;
Vertex *v = FindPoint(std::abs(TheShape.Num));
if(v){
TheShape.Type = MSH_POINT;
List_Add((yyval.l), &TheShape);
}
else{
GVertex *gv = GModel::current()->getVertexByTag(std::abs(TheShape.Num));
if(gv){
TheShape.Type = MSH_POINT_FROM_GMODEL;
List_Add((yyval.l), &TheShape);
}
else
yymsg(1, "Unknown point %d", TheShape.Num);
}

Christophe Geuzaine
committed
case 155:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1905 "Gmsh.y"
double d;
List_Read((yyvsp[(4) - (6)].l), i, &d);
Shape TheShape;
TheShape.Num = (int)d;
Curve *c = FindCurve(std::abs(TheShape.Num));
if(c){
TheShape.Type = c->Typ;
List_Add((yyval.l), &TheShape);
}
else{
GEdge *ge = GModel::current()->getEdgeByTag(std::abs(TheShape.Num));
if(ge){
TheShape.Type = MSH_SEGM_FROM_GMODEL;
List_Add((yyval.l), &TheShape);
}
else
yymsg(1, "Unknown curve %d", TheShape.Num);
}

Christophe Geuzaine
committed
case 156:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1928 "Gmsh.y"
double d;
List_Read((yyvsp[(4) - (6)].l), i, &d);
Shape TheShape;
TheShape.Num = (int)d;
Surface *s = FindSurface(std::abs(TheShape.Num));
if(s){
TheShape.Type = s->Typ;
List_Add((yyval.l), &TheShape);
}
else{
GFace *gf = GModel::current()->getFaceByTag(std::abs(TheShape.Num));
if(gf){
TheShape.Type = MSH_SURF_FROM_GMODEL;
List_Add((yyval.l), &TheShape);
}
else
yymsg(1, "Unknown surface %d", TheShape.Num);
}

Christophe Geuzaine
committed
case 157:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1951 "Gmsh.y"
double d;
List_Read((yyvsp[(4) - (6)].l), i, &d);
Shape TheShape;
TheShape.Num = (int)d;
Volume *v = FindVolume(std::abs(TheShape.Num));
if(v){
TheShape.Type = v->Typ;
List_Add((yyval.l), &TheShape);
}
else{
GRegion *gr = GModel::current()->getRegionByTag(std::abs(TheShape.Num));
if(gr){
TheShape.Type = MSH_VOLUME_FROM_GMODEL;
List_Add((yyval.l), &TheShape);
}
else
yymsg(1, "Unknown volume %d", TheShape.Num);
}

Christophe Geuzaine
committed
case 158:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 1979 "Gmsh.y"
if(List_Nbr((yyvsp[(7) - (8)].l)) == 4){
int t = (int)(yyvsp[(4) - (8)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
double d[4];
for(int i = 0; i < 4; i++)
List_Read((yyvsp[(7) - (8)].l), i, &d[i]);
gLevelset *ls = new gLevelsetPlane(d[0], d[1], d[2], d[3], t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else
yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (8)].d));

Christophe Geuzaine
committed
case 159:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2000 "Gmsh.y"
Emilie Marchandise
committed
#if defined(HAVE_DINTEGRATION)
int t = (int)(yyvsp[(4) - (10)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
//Msg::Info("nb = %d \n",List_Nbr($8) );
fullMatrix<double> centers(List_Nbr((yyvsp[(8) - (10)].l)),3);
for (int i = 0; i < List_Nbr((yyvsp[(8) - (10)].l)); i++){
List_T *l = *(List_T**)List_Pointer((yyvsp[(8) - (10)].l), i);
for (int j = 0; j < List_Nbr(l); j++){
//Msg::Info("nb j = %d \n",List_Nbr(l) );
centers(i,j) = (double)(*(double*)List_Pointer(l, j));
}
}
gLevelset *ls = new gLevelsetPoints(centers, t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
#endif
Emilie Marchandise
committed
break;

Christophe Geuzaine
committed
case 160:
Emilie Marchandise
committed
/* Line 1806 of yacc.c */
#line 2024 "Gmsh.y"
Emilie Marchandise
committed
{
if(List_Nbr((yyvsp[(12) - (14)].l)) == 0){
int t = (int)(yyvsp[(4) - (14)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]};
double n[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]};
gLevelset *ls = new gLevelsetPlane(pt, n, t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else
yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (14)].d));

Christophe Geuzaine
committed
case 161:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2045 "Gmsh.y"
if(List_Nbr((yyvsp[(14) - (16)].l)) == 0){
int t = (int)(yyvsp[(4) - (16)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
double pt1[3] = {(yyvsp[(8) - (16)].v)[0], (yyvsp[(8) - (16)].v)[1], (yyvsp[(8) - (16)].v)[2]};
double pt2[3] = {(yyvsp[(10) - (16)].v)[0], (yyvsp[(10) - (16)].v)[1], (yyvsp[(10) - (16)].v)[2]};
double pt3[3] = {(yyvsp[(12) - (16)].v)[0], (yyvsp[(12) - (16)].v)[1], (yyvsp[(12) - (16)].v)[2]};
gLevelset *ls = new gLevelsetPlane(pt1, pt2, pt3, t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else
yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (16)].d));

Christophe Geuzaine
committed
case 162:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2066 "Gmsh.y"
if(List_Nbr((yyvsp[(10) - (12)].l)) == 1){
int t = (int)(yyvsp[(4) - (12)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
double d;
List_Read((yyvsp[(10) - (12)].l), 0, &d);
gLevelset *ls = new gLevelsetSphere((yyvsp[(8) - (12)].v)[0], (yyvsp[(8) - (12)].v)[1], (yyvsp[(8) - (12)].v)[2], d, t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else
yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (12)].d));

Christophe Geuzaine
committed
case 163:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2086 "Gmsh.y"
if(!strcmp((yyvsp[(2) - (8)].c), "Union")){
int t = (int)(yyvsp[(4) - (8)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
std::vector<gLevelset *> vl;
for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++) {
double d; List_Read((yyvsp[(7) - (8)].l), i, &d);
LevelSet *pl = FindLevelSet((int)d);
if(!pl) yymsg(0, "Levelset Union %d : unknown levelset %d", t, (int)d);
else vl.push_back(pl->ls);
}
gLevelset *ls = new gLevelsetUnion(vl, true);
LevelSet *l = Create_LevelSet(t, ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else if(!strcmp((yyvsp[(2) - (8)].c), "Intersection")){
int t = (int)(yyvsp[(4) - (8)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
std::vector<gLevelset *> vl;
for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++) {
double d; List_Read((yyvsp[(7) - (8)].l), i, &d);
LevelSet *pl = FindLevelSet((int)d);
if(!pl) yymsg(0, "Levelset Intersection %d : unknown levelset %d", t, (int)d);
else vl.push_back(pl->ls);
}
gLevelset *ls = new gLevelsetIntersection(vl, true);
LevelSet *l = Create_LevelSet(t, ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else if(!strcmp((yyvsp[(2) - (8)].c), "Cut")){
int t = (int)(yyvsp[(4) - (8)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
std::vector<gLevelset *> vl;
for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++) {
double d; List_Read((yyvsp[(7) - (8)].l), i, &d);
LevelSet *pl = FindLevelSet((int)d);
if(!pl) yymsg(0, "Levelset Cut %d : unknown levelset %d", t, (int)d);
else vl.push_back(pl->ls);
}
gLevelset *ls = new gLevelsetCut(vl, true);
LevelSet *l = Create_LevelSet(t, ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else if(!strcmp((yyvsp[(2) - (8)].c), "Crack")){
int t = (int)(yyvsp[(4) - (8)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
std::vector<gLevelset *> vl;
for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++) {
double d; List_Read((yyvsp[(7) - (8)].l), i, &d);
LevelSet *pl = FindLevelSet((int)d);
if(!pl) yymsg(0, "Levelset Crack %d : unknown levelset %d", t, (int)d);
else vl.push_back(pl->ls);
}
gLevelset *ls = new gLevelsetCrack(vl);
LevelSet *l = Create_LevelSet(t, ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else if(!strcmp((yyvsp[(2) - (8)].c), "Reverse")){
int t = (int)(yyvsp[(4) - (8)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
double d;
List_Read((yyvsp[(7) - (8)].l), 0, &d);
LevelSet *pl = FindLevelSet((int)d);
gLevelset *ls = NULL;
if(!pl) yymsg(0, "Levelset Reverse %d : unknown levelset %d", t, (int)d);
else ls = new gLevelsetReverse(pl->ls);
LevelSet *l = Create_LevelSet(t, ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else if(!strcmp((yyvsp[(2) - (8)].c), "PostView")){
int t = (int)(yyvsp[(4) - (8)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
if(List_Nbr((yyvsp[(7) - (8)].l)) > 0){
double d; List_Read((yyvsp[(7) - (8)].l), 0, &d);
gLevelset *ls = new gLevelsetPostView((int)d, t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
}
else
yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (8)].d));
Free((yyvsp[(2) - (8)].c));
break;

Christophe Geuzaine
committed
case 164:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2198 "Gmsh.y"
{
#if defined(HAVE_DINTEGRATION)
if(!strcmp((yyvsp[(2) - (8)].c), "MathEval")){
int t = (int)(yyvsp[(4) - (8)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
gLevelset *ls = new gLevelsetMathEval((yyvsp[(7) - (8)].c), t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else
yymsg(0, "Wrong levelset definition");
Free((yyvsp[(2) - (8)].c)); Free((yyvsp[(7) - (8)].c));
#endif

Christophe Geuzaine
committed
case 165:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2217 "Gmsh.y"
if(!strcmp((yyvsp[(2) - (6)].c), "CutMesh")){
int t = (int)(yyvsp[(4) - (6)].d);
GModel *GM = GModel::current();
if(FindLevelSet(t)){
GM->buildCutGModel(FindLevelSet(t)->ls, true, false);
GM->setVisibility(0);
}
else
yymsg(0, "Unknown levelset (%d)", t);
Emilie Marchandise
committed
}
Emilie Marchandise
committed
int t = (int)(yyvsp[(4) - (6)].d);
GModel *GM = GModel::current();
if(FindLevelSet(t)){
GM->buildCutGModel(FindLevelSet(t)->ls, true, true);
GM->setVisibility(0);
}
else
yymsg(0, "Unknown levelset (%d)", t);
else if(!strcmp((yyvsp[(2) - (6)].c), "SplitMesh")){
int t = (int)(yyvsp[(4) - (6)].d);
GModel *GM = GModel::current();
if(FindLevelSet(t)){
GM->buildCutGModel(FindLevelSet(t)->ls, false, true);
GM->setVisibility(0);
}
else
yymsg(0, "Unknown levelset (%d)", t);
else
yymsg(0, "Wrong levelset definition");
Free((yyvsp[(2) - (6)].c));
break;

Christophe Geuzaine
committed
case 166:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2256 "Gmsh.y"
if(!strcmp((yyvsp[(2) - (14)].c), "Cylinder") && List_Nbr((yyvsp[(12) - (14)].l)) == 1){
int t = (int)(yyvsp[(4) - (14)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
double d;
List_Read((yyvsp[(12) - (14)].l), 0, &d);
double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]};
double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]};
gLevelset *ls = new gLevelsetGenCylinder(pt, dir, d, t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else if(!strcmp((yyvsp[(2) - (14)].c), "Cone") && List_Nbr((yyvsp[(12) - (14)].l)) == 1){
int t = (int)(yyvsp[(4) - (14)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
double d;
List_Read((yyvsp[(12) - (14)].l), 0, &d);
double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]};
double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]};
gLevelset *ls = new gLevelsetCone(pt, dir, d, t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else if(!strcmp((yyvsp[(2) - (14)].c), "Cylinder") && List_Nbr((yyvsp[(12) - (14)].l)) == 2){
int t = (int)(yyvsp[(4) - (14)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
double d[2];
for(int i = 0; i < 2; i++)
List_Read((yyvsp[(12) - (14)].l), i, &d[i]);
double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]};
double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]};
gLevelset *ls = new gLevelsetCylinder(pt, dir, d[0], d[1], t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else if(!strcmp((yyvsp[(2) - (14)].c), "Cylinder") && List_Nbr((yyvsp[(12) - (14)].l)) == 3){
int t = (int)(yyvsp[(4) - (14)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
double d[3];
for(int i = 0; i < 3; i++)
List_Read((yyvsp[(12) - (14)].l), i, &d[i]);
double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]};
double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]};
gLevelset *ls = new gLevelsetCylinder(pt, dir, d[0], d[1], d[2], t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else if(!strcmp((yyvsp[(2) - (14)].c), "Ellipsoid") && List_Nbr((yyvsp[(12) - (14)].l)) == 3){
int t = (int)(yyvsp[(4) - (14)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
double d[3];
for(int i = 0; i < 3; i++)
List_Read((yyvsp[(12) - (14)].l), i, &d[i]);
double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]};
double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]};
gLevelset *ls = new gLevelsetEllipsoid(pt, dir, d[0], d[1], d[2], t);
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else if(!strcmp((yyvsp[(2) - (14)].c), "Quadric") && List_Nbr((yyvsp[(12) - (14)].l)) == 5){
int t = (int)(yyvsp[(4) - (14)].d);
if(FindLevelSet(t)){
yymsg(0, "Levelset %d already exists", t);
}
else {
double d[5];
for(int i = 0; i < 5; i++)
List_Read((yyvsp[(12) - (14)].l), i, &d[i]);
double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]};
double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]};
LevelSet *l = Create_LevelSet(ls->getTag(), ls);
Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
}
}
else
yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (14)].d));
Free((yyvsp[(2) - (14)].c));
break;

Christophe Geuzaine
committed
case 167:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2364 "Gmsh.y"
Shape TheShape;
List_Read((yyvsp[(3) - (4)].l), i, &TheShape);
DeleteShape(TheShape.Type, TheShape.Num);

Christophe Geuzaine
committed
case 168:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2373 "Gmsh.y"
GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d));

Christophe Geuzaine
committed
case 169:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2379 "Gmsh.y"
int index = (int)(yyvsp[(4) - (6)].d);
if(index >= 0 && index < (int)PView::list.size())
delete PView::list[index];
else
yymsg(0, "Unknown view %d", index);
yymsg(0, "Unknown command 'Delete %s'", (yyvsp[(2) - (6)].c));

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed
case 170:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2394 "Gmsh.y"
if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){
}
else if(!strcmp((yyvsp[(2) - (3)].c), "Model")){
GModel::current()->destroy();
GModel::current()->getGEOInternals()->destroy();
GModel::current()->getGEOInternals()->reset_physicals();
GModel::current()->deletePhysicalGroups();
else if(!strcmp((yyvsp[(2) - (3)].c), "Variables")){
gmsh_yysymbols.clear();
else if(!strcmp((yyvsp[(2) - (3)].c), "Options")){
ReInitOptions(0);
InitOptionsGUI(0);
}
if(gmsh_yysymbols.count((yyvsp[(2) - (3)].c)))
gmsh_yysymbols.erase((yyvsp[(2) - (3)].c));
else
yymsg(0, "Unknown object or expression to delete '%s'", (yyvsp[(2) - (3)].c));

Christophe Geuzaine
committed
case 171:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2422 "Gmsh.y"
if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){
for(int i = PView::list.size() - 1; i >= 0; i--)
if(PView::list[i]->getData()->empty()) delete PView::list[i];
yymsg(0, "Unknown command 'Delete %s %s'", (yyvsp[(2) - (4)].c), (yyvsp[(3) - (4)].c));

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed
case 172:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2439 "Gmsh.y"
Shape TheShape;
List_Read((yyvsp[(4) - (5)].l), i, &TheShape);
ColorShape(TheShape.Type, TheShape.Num, (yyvsp[(2) - (5)].u));

Christophe Geuzaine
committed
case 173:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2453 "Gmsh.y"
VisibilityShape((yyvsp[(2) - (3)].c), i, 1);

Christophe Geuzaine
committed
case 174:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2459 "Gmsh.y"
VisibilityShape((yyvsp[(2) - (3)].c), i, 0);

Christophe Geuzaine
committed
case 175:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2465 "Gmsh.y"
Shape TheShape;
List_Read((yyvsp[(3) - (4)].l), i, &TheShape);
VisibilityShape(TheShape.Type, TheShape.Num, 1);

Christophe Geuzaine
committed
case 176:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 2474 "Gmsh.y"