diff --git a/Common/Context.h b/Common/Context.h index f6bc49684cbc116e41cb1e46ca3cea281b6e2434..54a57f6079139adc91975be965aca509c7d5cb35 100644 --- a/Common/Context.h +++ b/Common/Context.h @@ -76,7 +76,7 @@ struct contextGeometryOptions { int occFixDegenerated, occFixSmallEdges, occFixSmallFaces; int occSewFaces, occParallel; double occScaling; - int copyMeshingMethod, copyDisplayAttributes, exactExtrusion; + int copyMeshingMethod, exactExtrusion; int matchGeomAndMesh; int hideCompounds, orientedPhysicals, doubleClickedEntityTag; std::string doubleClickedPointCommand, doubleClickedLineCommand; diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index 313ebfeaa57b7ed3ec4469374d7e3b2d0f915b3e..aae3baa8b15539ea8ea41b55c7c7fb078e2fea82 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -814,9 +814,6 @@ StringXNumber GeometryOptions_Number[] = { "Enable clipping planes? (Plane[i]=2^i, i=0,...,5)" }, { F|O, "CopyMeshingMethod" , opt_geometry_copy_meshing_method, 0. , "Copy meshing method (unstructured or transfinite) when duplicating geometrical entities?" }, - { F|O, "CopyDisplayAttributes" , opt_geometry_copy_display_attributes, 0. , - "Copy display attributes (visibiliy, color) when duplicating geometrical entities?" }, - { F, "DoubleClickedEntityTag" , opt_geometry_double_clicked_entity_tag, 0. , "Tag of last double-clicked geometrical entity" }, diff --git a/Common/Options.cpp b/Common/Options.cpp index c5c7e83ba7ff79560e9813c10571500b27d3f199..c14aad51efdfc87840a64510df30352188c1981b 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -4852,13 +4852,6 @@ double opt_geometry_copy_meshing_method(OPT_ARGS_NUM) return CTX::instance()->geom.copyMeshingMethod; } -double opt_geometry_copy_display_attributes(OPT_ARGS_NUM) -{ - if(action & GMSH_SET) - CTX::instance()->geom.copyDisplayAttributes = (int)val; - return CTX::instance()->geom.copyDisplayAttributes; -} - double opt_geometry_double_clicked_entity_tag(OPT_ARGS_NUM) { if(action & GMSH_SET) diff --git a/Common/Options.h b/Common/Options.h index dd99916e8550a129c1e92562068c567c847e0e82..0fcad56213ba5b6f04a801c78a232c8409d7e08e 100644 --- a/Common/Options.h +++ b/Common/Options.h @@ -398,7 +398,6 @@ double opt_geometry_snap1(OPT_ARGS_NUM); double opt_geometry_snap2(OPT_ARGS_NUM); double opt_geometry_clip(OPT_ARGS_NUM); double opt_geometry_copy_meshing_method(OPT_ARGS_NUM); -double opt_geometry_copy_display_attributes(OPT_ARGS_NUM); double opt_geometry_double_clicked_entity_tag(OPT_ARGS_NUM); double opt_geometry_exact_extrusion(OPT_ARGS_NUM); double opt_geometry_match_geom_and_mesh(OPT_ARGS_NUM); diff --git a/Geo/GEdge.cpp b/Geo/GEdge.cpp index 6bae59bb46442cc77ee416d8e2e15729fb1c807a..13c8d5708b012f0b2778316db3b3028f497e83b2 100644 --- a/Geo/GEdge.cpp +++ b/Geo/GEdge.cpp @@ -259,6 +259,15 @@ void GEdge::setVisibility(char val, bool recursive) } } +void GEdge::setColor(unsigned int val, bool recursive) +{ + GEntity::setColor(val); + if(recursive){ + if(v0) v0->setColor(val); + if(v1) v1->setColor(val); + } +} + std::string GEdge::getAdditionalInfoString() { std::ostringstream sstream; diff --git a/Geo/GEdge.h b/Geo/GEdge.h index 5a5597288961442580c73970a9dc80204b6d8646..f84953701b7325c5187c948b558c11d31967e32b 100644 --- a/Geo/GEdge.h +++ b/Geo/GEdge.h @@ -74,6 +74,9 @@ class GEdge : public GEntity{ // set the visibility flag virtual void setVisibility(char val, bool recursive=false); + // set color + virtual void setColor(unsigned int val, bool recursive=false); + // true if the edge is a seam for the given face. virtual bool isSeam(const GFace *face) const { return false; } diff --git a/Geo/GEntity.h b/Geo/GEntity.h index 007614a1e9b993f3da8db4b8edcc98e85c4c31fc..cf857263d20f787dbdf73758715dbbfa42be9e48 100644 --- a/Geo/GEntity.h +++ b/Geo/GEntity.h @@ -45,7 +45,7 @@ class GEntity { char _allElementsVisible; // the color of the entity (ignored if set to transparent blue) - unsigned int _color; + unsigned int _color; protected: SOrientedBoundingBox *_obb; @@ -184,7 +184,7 @@ class GEntity { // mesh generation of the entity virtual void mesh(bool verbose) {} - + // delete the mesh data virtual void deleteMesh(){} @@ -296,7 +296,7 @@ class GEntity { // get/set the color virtual unsigned int getColor(){ return _color; } - virtual void setColor(unsigned color){ _color = color; } + virtual void setColor(unsigned color, bool recursive=false){ _color = color; } // return true if we should use this color to represent the entity virtual bool useColor(); @@ -349,12 +349,12 @@ class GEntity { GFace *cast2Face(); GRegion *cast2Region(); - // update all vertex lists, including periodic connections + // update all vertex lists, including periodic connections void updateVertices(const std::map<MVertex*,MVertex*>&); - + // transformation from master std::vector<double> affineTransform; - + // corresponding principal vertices std::map<MVertex*,MVertex*> correspondingVertices; diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp index 05f58fd049f3899dddf19cecf17e6f8491fce977..f36f368909ef5916b0e102bb6d95638c138905f1 100644 --- a/Geo/GFace.cpp +++ b/Geo/GFace.cpp @@ -323,6 +323,15 @@ void GFace::setVisibility(char val, bool recursive) } } +void GFace::setColor(unsigned int val, bool recursive) +{ + GEntity::setColor(val); + if(recursive){ + for (std::list<GEdge*>::iterator it = l_edges.begin(); it != l_edges.end(); ++it) + (*it)->setColor(val, recursive); + } +} + std::string GFace::getAdditionalInfoString() { std::ostringstream sstream; diff --git a/Geo/GFace.h b/Geo/GFace.h index b14622d18d7db2329401c958cadbcb753dd3d9c7..8920e110c5c29cf03af8bcad33b22dd5a97f54bf 100644 --- a/Geo/GFace.h +++ b/Geo/GFace.h @@ -138,6 +138,9 @@ class GFace : public GEntity{ // set visibility flag virtual void setVisibility(char val, bool recursive=false); + // set color + virtual void setColor(unsigned int val, bool recursive=false); + // compute the parameters UV from a point XYZ void XYZtoUV(double X, double Y, double Z, double &U, double &V, double relax, bool onSurface=true) const; diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 440b8dceb82452cd40231bb098f943b9952776bb..543ac61e225855c9ff3fb82e9a7754ec5f4a982d 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -297,6 +297,17 @@ GVertex *GModel::getVertexByTag(int n) const return 0; } +GEntity *GModel::getEntityByTag(int dim, int n) const +{ + switch(dim){ + case 0: return getVertexByTag(n); + case 1: return getEdgeByTag(n); + case 2: return getFaceByTag(n); + case 3: return getRegionByTag(n); + } + return 0; +} + std::vector<int> GModel::getTagsForPhysicalName(int dim, const std::string tag) { std::vector<int> tags; diff --git a/Geo/GModel.h b/Geo/GModel.h index 3e6bf56054ce3ffbfebb8b1438d769d1f749961e..c811833b2040cb1cdfd9dc19eda5305c590b113b 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -267,6 +267,7 @@ class GModel GFace *getFaceByTag(int n) const; GEdge *getEdgeByTag(int n) const; GVertex *getVertexByTag(int n) const; + GEntity *getEntityByTag(int dim, int n) const; // add/remove an entity in the model void add(GRegion *r) { regions.insert(r); } diff --git a/Geo/GModelIO_GEO.cpp b/Geo/GModelIO_GEO.cpp index 378e522713558c225878f74a7c605ef1e8ddc0ca..63738e83368bebf8659d1e81b48f8665dabc4234 100644 --- a/Geo/GModelIO_GEO.cpp +++ b/Geo/GModelIO_GEO.cpp @@ -877,7 +877,6 @@ void GEO_Internals::synchronize(GModel *model) else{ v->resetMeshAttributes(); } - if(!p->Visible) v->setVisibility(0); } List_Delete(points); } @@ -907,9 +906,6 @@ void GEO_Internals::synchronize(GModel *model) else{ e->resetMeshAttributes(); } - - if(!c->Visible) e->setVisibility(0); - if(c->Color.type) e->setColor(c->Color.mesh); if(c->degenerated) e->setTooSmall(true); } } @@ -934,8 +930,6 @@ void GEO_Internals::synchronize(GModel *model) e->meshAttributes.reverseMesh = c->ReverseMesh; model->add(e); } - if(!c->Visible) e->setVisibility(0); - if(c->Color.type) e->setColor(c->Color.mesh); if(c->degenerated) e->setTooSmall(true); } } @@ -999,8 +993,6 @@ void GEO_Internals::synchronize(GModel *model) f->computeMeanPlane(); // recompute in case geom has changed f->resetMeshAttributes(); } - if(!s->Visible) f->setVisibility(0); - if(s->Color.type) f->setColor(s->Color.mesh); } List_Delete(surfaces); } @@ -1027,8 +1019,6 @@ void GEO_Internals::synchronize(GModel *model) else{ r->resetMeshAttributes(); } - if(!v->Visible) r->setVisibility(0); - if(v->Color.type) r->setColor(v->Color.mesh); } List_Delete(volumes); } diff --git a/Geo/GRegion.cpp b/Geo/GRegion.cpp index cbbe17c4af1c63c192c5ce05d2bd5fd4142607c1..24b2bc0bbcaaa403d3383115b82d66780d0c3fca 100644 --- a/Geo/GRegion.cpp +++ b/Geo/GRegion.cpp @@ -221,6 +221,18 @@ void GRegion::setVisibility(char val, bool recursive) } } +void GRegion::setColor(unsigned int val, bool recursive) +{ + GEntity::setColor(val); + if(recursive){ + std::list<GFace*>::iterator it = l_faces.begin(); + while(it != l_faces.end()){ + (*it)->setColor(val, recursive); + ++it; + } + } +} + std::string GRegion::getAdditionalInfoString() { std::ostringstream sstream; diff --git a/Geo/GRegion.h b/Geo/GRegion.h index 0eb8681fb9c7c20ce3b65a680880f16243cdad20..b9810d558720652f4476d80fc1a2e6894f505cf3 100644 --- a/Geo/GRegion.h +++ b/Geo/GRegion.h @@ -52,6 +52,9 @@ class GRegion : public GEntity { // set the visibility flag virtual void setVisibility(char val, bool recursive=false); + // set color + virtual void setColor(unsigned int val, bool recursive=false); + // add embedded vertices/edges/faces void addEmbeddedVertex(GVertex *v){ embedded_vertices.push_back(v); } void addEmbeddedEdge(GEdge *e){ embedded_edges.push_back(e); } diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp index 9c0ade225218929c1073d60ff9df8c31efe6f566..2b30ac9cc140d0acfd460b6143672a3bfd0e8067 100644 --- a/Geo/Geo.cpp +++ b/Geo/Geo.cpp @@ -145,7 +145,6 @@ PhysicalGroup *Create_PhysicalGroup(int Num, int typ, List_T *intlist) GModel::current()->getGEOInternals()->MaxPhysicalNum = std::max(GModel::current()->getGEOInternals()->MaxPhysicalNum, Num); p->Typ = typ; - p->Visible = 1; for(int i = 0; i < List_Nbr(intlist); i++) { int j; List_Read(intlist, i, &j); @@ -529,8 +528,6 @@ Curve *Create_Curve(int Num, int Typ, int Order, List_T *Liste, { 1, 0, 0, 0} }; Curve *pC = new Curve; - pC->Color.type = 0; - pC->Visible = 1; pC->Extrude = NULL; pC->Typ = Typ; pC->Num = Num; @@ -642,8 +639,6 @@ void Free_Curve(void *a, void *b) Surface *Create_Surface(int Num, int Typ) { Surface *pS = new Surface; - pS->Color.type = 0; - pS->Visible = 1; pS->Num = Num; pS->geometry = 0; pS->InSphereCenter = 0; @@ -681,8 +676,6 @@ void Free_Surface(void *a, void *b) Volume *Create_Volume(int Num, int Typ) { Volume *pV = new Volume; - pV->Color.type = 0; - pV->Visible = 1; pV->Recombine3D = 0; pV->Num = Num; GModel::current()->getGEOInternals()->setMaxTag @@ -846,9 +839,6 @@ static void CopyVertex(Vertex *v, Vertex *vv) vv->Pos.X = v->Pos.X; vv->Pos.Y = v->Pos.Y; vv->Pos.Z = v->Pos.Z; - if(CTX::instance()->geom.copyDisplayAttributes){ - vv->Visible = v->Visible; - } } Vertex *DuplicateVertex(Vertex *v) @@ -877,10 +867,6 @@ static void CopyCurve(Curve *c, Curve *cc) cc->coeffTransfinite = c->coeffTransfinite; cc->ReverseMesh = c->ReverseMesh; } - if(CTX::instance()->geom.copyDisplayAttributes){ - cc->Visible = c->Visible; - cc->Color = c->Color; - } cc->l = c->l; for(int i = 0; i < 4; i++) for(int j = 0; j < 4; j++) @@ -926,10 +912,6 @@ static void CopySurface(Surface *s, Surface *ss) if(List_Nbr(s->TrsfPoints)) Msg::Warning("Only automatic transfinite surface specifications can be copied"); } - if(CTX::instance()->geom.copyDisplayAttributes){ - ss->Visible = s->Visible; - ss->Color = s->Color; - } ss->Generatrices = List_Create(List_Nbr(s->Generatrices) + 1, 1, sizeof(Curve *)); ss->GeneratricesByTag = List_Create(List_Nbr(s->GeneratricesByTag) + 1, 1, sizeof(int)); ss->InSphereCenter = s->InSphereCenter; // FIXME: hack... @@ -962,10 +944,6 @@ static void CopyVolume(Volume *v, Volume *vv) if(List_Nbr(v->TrsfPoints)) Msg::Warning("Only automatic transfinite volume specifications can be copied"); } - if(CTX::instance()->geom.copyDisplayAttributes){ - vv->Visible = v->Visible; - vv->Color = v->Color; - } List_Copy(v->Surfaces, vv->Surfaces); List_Copy(v->SurfacesOrientations, vv->SurfacesOrientations); List_Copy(v->SurfacesByTag, vv->SurfacesByTag); @@ -1120,146 +1098,6 @@ void DeletePhysicalVolume(int num) GModel::current()->deletePhysicalGroup(3, num); } -void ColorShape(int Type, int Num, unsigned int Color, bool Recursive) -{ - Curve *c; - Surface *s; - Volume *V; - - switch (Type) { - case MSH_POINT: - break; - case MSH_SEGM_LINE: - case MSH_SEGM_SPLN: - case MSH_SEGM_BSPLN: - case MSH_SEGM_BEZIER: - case MSH_SEGM_CIRC: - case MSH_SEGM_CIRC_INV: - case MSH_SEGM_ELLI: - case MSH_SEGM_ELLI_INV: - case MSH_SEGM_NURBS: - case MSH_SEGM_DISCRETE: - if((c = FindCurve(abs(Num)))) c->SetColor(Color, Recursive); - break; - case MSH_SURF_TRIC: - case MSH_SURF_REGL: - case MSH_SURF_PLAN: - case MSH_SURF_DISCRETE: - if((s = FindSurface(abs(Num)))) s->SetColor(Color, Recursive); - break; - case MSH_VOLUME: - case MSH_VOLUME_DISCRETE: - if((V = FindVolume(abs(Num)))) V->SetColor(Color, Recursive); - break; - default: - break; - } -} - -void VisibilityShape(int Type, int Num, int Mode, bool Recursive) -{ - Vertex *v; - Curve *c; - Surface *s; - Volume *V; - - switch (Type) { - case MSH_POINT: - case MSH_POINT_FROM_GMODEL: - { - if((v = FindPoint(abs(Num)))) v->SetVisible(Mode, Recursive); - GVertex *gv = GModel::current()->getVertexByTag(abs(Num)); - if(gv) gv->setVisibility(Mode, Recursive); - } - break; - case MSH_SEGM_LINE: - case MSH_SEGM_SPLN: - case MSH_SEGM_BSPLN: - case MSH_SEGM_BEZIER: - case MSH_SEGM_CIRC: - case MSH_SEGM_CIRC_INV: - case MSH_SEGM_ELLI: - case MSH_SEGM_ELLI_INV: - case MSH_SEGM_NURBS: - case MSH_SEGM_DISCRETE: - case MSH_SEGM_COMPOUND: - case MSH_SEGM_FROM_GMODEL: - { - if((c = FindCurve(abs(Num)))) c->SetVisible(Mode, Recursive); - GEdge *ge = GModel::current()->getEdgeByTag(abs(Num)); - if(ge) ge->setVisibility(Mode, Recursive); - } - break; - case MSH_SURF_TRIC: - case MSH_SURF_REGL: - case MSH_SURF_PLAN: - case MSH_SURF_DISCRETE: - case MSH_SURF_COMPOUND: - case MSH_SURF_FROM_GMODEL: - { - if((s = FindSurface(abs(Num)))) s->SetVisible(Mode, Recursive); - GFace *gf = GModel::current()->getFaceByTag(abs(Num)); - if(gf) gf->setVisibility(Mode, Recursive); - } - break; - case MSH_VOLUME: - case MSH_VOLUME_DISCRETE: - case MSH_VOLUME_COMPOUND: - case MSH_VOLUME_FROM_GMODEL: - { - if((V = FindVolume(abs(Num)))) V->SetVisible(Mode, Recursive); - GRegion *gr = GModel::current()->getRegionByTag(abs(Num)); - if(gr) gr->setVisibility(Mode, Recursive); - } - break; - default: - break; - } -} - -static int vmode; -static void vis_nod(void *a, void *b){ (*(Vertex **)a)->Visible = vmode; } -static void vis_cur(void *a, void *b){ (*(Curve **)a)->Visible = vmode; } -static void vis_sur(void *a, void *b){ (*(Surface **)a)->Visible = vmode; } -static void vis_vol(void *a, void *b){ (*(Volume **)a)->Visible = vmode; } - -void VisibilityShape(char *str, int Type, int Mode, bool Recursive) -{ - vmode = Mode; - - if(!strcmp(str, "all") || !strcmp(str, "*")) { - switch (Type) { - case 0: - Tree_Action(GModel::current()->getGEOInternals()->Points, vis_nod); - for(GModel::viter it = GModel::current()->firstVertex(); - it != GModel::current()->lastVertex(); it++) - (*it)->setVisibility(Mode); - break; - case 1: - Tree_Action(GModel::current()->getGEOInternals()->Curves, vis_cur); - for(GModel::eiter it = GModel::current()->firstEdge(); - it != GModel::current()->lastEdge(); it++) - (*it)->setVisibility(Mode); - break; - case 2: - Tree_Action(GModel::current()->getGEOInternals()->Surfaces, vis_sur); - for(GModel::fiter it = GModel::current()->firstFace(); - it != GModel::current()->lastFace(); it++) - (*it)->setVisibility(Mode); - break; - case 3: - Tree_Action(GModel::current()->getGEOInternals()->Volumes, vis_vol); - for(GModel::riter it = GModel::current()->firstRegion(); - it != GModel::current()->lastRegion(); it++) - (*it)->setVisibility(Mode); - break; - } - } - else { - VisibilityShape(Type, atoi(str), Mode, Recursive); - } -} - void SetPartition(int Type, int Num, int Partition) { switch (Type) { @@ -2645,7 +2483,7 @@ bool Surface::degenerate() const for(int i = 0; i < N; i++) { Curve *c; List_Read(Generatrices, i, &c); - if(!c->degenerate())Nd++; + if(!c->degenerate()) Nd++; } return Nd == 0; } diff --git a/Geo/Geo.h b/Geo/Geo.h index a81dfe46b02a2ce6b04582c965eec6438abcb56e..8ee37daee539ec8e0b37c4cd1a3978ddf54eb43f 100644 --- a/Geo/Geo.h +++ b/Geo/Geo.h @@ -26,7 +26,6 @@ class Vertex { public : int Num; int Typ; - char Visible; double lc, u, w; Coord Pos; // a model vertex is usually defined in the euclidian coordinates @@ -37,7 +36,7 @@ class Vertex { SPoint2 pntOnGeometry; int boundaryLayerIndex; Vertex(double X=0., double Y=0., double Z=0., double l=1., double W=1.) - : Num(0), Visible(1), lc(l), u(0.), w(W), geometry(0), boundaryLayerIndex(0) + : Num(0), lc(l), u(0.), w(W), geometry(0), boundaryLayerIndex(0) { Typ = MSH_POINT; Pos.X = X; @@ -58,16 +57,6 @@ class Vertex { -(Pos.X * autre.Pos.Z - Pos.Z * autre.Pos.X), Pos.X * autre.Pos.Y - Pos.Y * autre.Pos.X, lc, w); } - void SetVisible(int value, bool recursive) - { - Visible = value; - } -}; - -class DrawingColor{ - public: - int type; - unsigned int geom, mesh; }; class CircParam{ @@ -82,7 +71,6 @@ class Curve{ int Num; int Typ; bool degenerated; - char Visible; int Method; int nbPointsTransfinite; int typeTransfinite; @@ -96,30 +84,11 @@ class Curve{ float *k; int degre; CircParam Circle; - DrawingColor Color; gmshSurface *geometry; std::vector<int> compound; int ReverseMesh; int master; std::list<double> affineTransformation; - void SetVisible(int value, bool recursive) - { - Visible = value; - if(recursive){ - if(beg) beg->SetVisible(value, recursive); - if(end) end->SetVisible(value, recursive); - for(int i = 0; i < List_Nbr(Control_Points); i++){ - Vertex *pV; - List_Read(Control_Points, i, &pV); - pV->SetVisible(value, recursive); - } - } - } - void SetColor(unsigned int value, bool recursive) - { - Color.type = 1; - Color.geom = Color.mesh = value; - } bool degenerate() const { if (beg == end && Typ == MSH_SEGM_LINE) return true; @@ -137,7 +106,6 @@ class Surface{ public: int Num; int Typ; - char Visible; int Method; int Recombine; int Recombine_Dir; // -1 is left, +1 is right, -2/2 is alternated left/right @@ -148,7 +116,6 @@ class Surface{ List_T *TrsfPoints; Vertex *InSphereCenter; ExtrudeParams *Extrude; - DrawingColor Color; // A surface is defined topologically by its Generatrices // i.e. curves that are the closure of it. The geometry of the // surface is defined hereafter. Note that this representation @@ -157,29 +124,6 @@ class Surface{ gmshSurface *geometry; std::vector<int> compound, compoundBoundary[4]; int ReverseMesh; - void SetVisible(int value, bool recursive) - { - Visible = value; - if(recursive){ - for(int i = 0; i < List_Nbr(Generatrices); i++){ - Curve *pC; - List_Read(Generatrices, i, &pC); - pC->SetVisible(value, recursive); - } - } - } - void SetColor(unsigned int value, bool recursive) - { - Color.type = 1; - Color.geom = Color.mesh = value; - if(recursive){ - for(int i = 0; i < List_Nbr(Generatrices); i++){ - Curve *pC; - List_Read(Generatrices, i, &pC); - pC->SetColor(value, recursive); - } - } - } bool degenerate() const; }; @@ -193,7 +137,6 @@ class Volume { public: int Num; int Typ; - char Visible; int Method; int Recombine3D; int QuadTri; @@ -202,38 +145,13 @@ class Volume { List_T *Surfaces; List_T *SurfacesOrientations; List_T *SurfacesByTag; - DrawingColor Color; std::vector<int> compound; - void SetVisible(int value, bool recursive) - { - Visible = value; - if(recursive){ - for(int i = 0; i < List_Nbr(Surfaces); i++){ - Surface *pS; - List_Read(Surfaces, i, &pS); - pS->SetVisible(value, recursive); - } - } - } - void SetColor(unsigned int value, bool recursive) - { - Color.type = 1; - Color.geom = Color.mesh = value; - if(recursive){ - for(int i = 0; i < List_Nbr(Surfaces); i++){ - Surface *pS; - List_Read(Surfaces, i, &pS); - pS->SetColor(value, recursive); - } - } - } }; class PhysicalGroup{ public: int Num; int Typ; - char Visible; List_T *Entities; }; @@ -300,11 +218,6 @@ void DeletePhysicalVolume(int Num); void SetPartition(int Type, int Num, int Partition); -void ColorShape(int Type, int Num, unsigned int Color, bool Recursive); - -void VisibilityShape(int Type, int Num, int Mode, bool Recursive); -void VisibilityShape(char *str, int Type, int Mode, bool Recursive); - void ExtrudeShape(int extrude_type, int shape_type, int shape_num, double T0, double T1, double T2, double A0, double A1, double A2, diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 70bf2684986075e39ccfaa3e1e5da5db3e7becd7..47ea30260fba78f5c8532702979777420bf52732 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -632,6 +632,9 @@ void getAllPhysicalTags(int dim, List_T *in); void getElementaryTagsForPhysicalGroups(int dim, List_T *in, List_T *out); void getElementaryTagsInBoundingBox(int dim, double x1, double y1, double z1, double x2, double y2, double z2, List_T *out); +void setVisibility(int dim, int visible, bool recursive); +void setVisibility(std::vector<int> tags[4], int visible, bool recursive); +void setColor(std::vector<int> tags[4], unsigned int val, bool recursive); struct doubleXstring{ double d; @@ -660,7 +663,7 @@ struct doubleXstring{ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 130 "Gmsh.y" +#line 133 "Gmsh.y" { char *c; int i; @@ -671,7 +674,7 @@ typedef union YYSTYPE List_T *l; } /* Line 193 of yacc.c. */ -#line 675 "Gmsh.tab.cpp" +#line 678 "Gmsh.tab.cpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -684,7 +687,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 688 "Gmsh.tab.cpp" +#line 691 "Gmsh.tab.cpp" #ifdef short # undef short @@ -1369,64 +1372,64 @@ static const yytype_int16 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 224, 224, 225, 230, 232, 236, 237, 238, 239, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 275, 279, 286, 291, - 296, 310, 323, 336, 364, 378, 391, 404, 423, 428, - 429, 430, 431, 432, 436, 438, 443, 445, 451, 555, - 450, 573, 580, 591, 590, 608, 615, 626, 625, 642, - 659, 682, 681, 695, 696, 697, 698, 699, 703, 704, - 710, 710, 711, 711, 717, 718, 719, 720, 725, 731, - 793, 810, 839, 868, 873, 878, 883, 888, 895, 905, - 934, 963, 968, 973, 978, 986, 995, 1001, 1007, 1020, - 1033, 1048, 1065, 1071, 1077, 1090, 1103, 1118, 1135, 1142, - 1151, 1170, 1189, 1199, 1211, 1217, 1225, 1246, 1269, 1280, - 1288, 1310, 1333, 1371, 1392, 1404, 1418, 1418, 1420, 1422, - 1431, 1441, 1440, 1461, 1460, 1479, 1478, 1496, 1506, 1505, - 1519, 1521, 1529, 1535, 1540, 1566, 1567, 1571, 1582, 1597, - 1607, 1608, 1613, 1621, 1630, 1638, 1656, 1660, 1666, 1674, - 1678, 1684, 1692, 1696, 1702, 1710, 1714, 1720, 1729, 1732, - 1739, 1742, 1749, 1770, 1784, 1798, 1833, 1871, 1885, 1899, - 1919, 1928, 1942, 1957, 1971, 1990, 2000, 2006, 2012, 2019, - 2046, 2061, 2081, 2102, 2123, 2144, 2166, 2188, 2209, 2232, - 2241, 2262, 2277, 2291, 2306, 2321, 2330, 2340, 2350, 2360, - 2375, 2386, 2399, 2411, 2423, 2435, 2472, 2483, 2499, 2500, - 2505, 2508, 2512, 2523, 2534, 2545, 2561, 2580, 2601, 2616, - 2632, 2650, 2701, 2722, 2744, 2767, 2872, 2888, 2926, 2940, - 2946, 2961, 2989, 3006, 3015, 3029, 3043, 3049, 3055, 3064, - 3073, 3082, 3096, 3169, 3187, 3204, 3219, 3252, 3264, 3288, - 3292, 3297, 3304, 3309, 3319, 3324, 3330, 3338, 3342, 3346, - 3355, 3419, 3435, 3452, 3469, 3491, 3513, 3548, 3556, 3564, - 3570, 3577, 3584, 3604, 3630, 3642, 3654, 3670, 3686, 3695, - 3694, 3709, 3708, 3723, 3722, 3737, 3736, 3749, 3762, 3776, - 3790, 3809, 3812, 3818, 3830, 3850, 3854, 3858, 3862, 3866, - 3870, 3874, 3878, 3887, 3900, 3901, 3902, 3903, 3904, 3908, - 3909, 3910, 3913, 3931, 3948, 3965, 3968, 3984, 3987, 4004, - 4007, 4013, 4016, 4023, 4026, 4033, 4050, 4091, 4135, 4174, - 4199, 4208, 4238, 4264, 4290, 4322, 4349, 4375, 4401, 4427, - 4453, 4475, 4481, 4487, 4493, 4499, 4505, 4531, 4557, 4574, - 4591, 4608, 4620, 4626, 4632, 4644, 4648, 4658, 4669, 4670, - 4671, 4675, 4681, 4693, 4711, 4739, 4740, 4741, 4742, 4743, - 4744, 4745, 4746, 4747, 4754, 4755, 4756, 4757, 4758, 4759, - 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, - 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, - 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4795, 4796, 4797, - 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4810, 4809, - 4817, 4819, 4824, 4829, 4852, 4870, 4888, 4906, 4924, 4929, - 4935, 4950, 4969, 4989, 5009, 5029, 5059, 5077, 5082, 5092, - 5102, 5107, 5118, 5127, 5132, 5137, 5166, 5165, 5178, 5180, - 5185, 5194, 5196, 5205, 5209, 5213, 5217, 5221, 5228, 5232, - 5236, 5240, 5247, 5252, 5259, 5264, 5268, 5273, 5277, 5285, - 5296, 5300, 5312, 5320, 5328, 5335, 5345, 5368, 5374, 5380, - 5386, 5392, 5403, 5414, 5425, 5436, 5442, 5448, 5454, 5460, - 5470, 5480, 5490, 5502, 5515, 5527, 5531, 5535, 5539, 5543, - 5561, 5579, 5587, 5595, 5624, 5634, 5653, 5658, 5662, 5666, - 5678, 5682, 5694, 5711, 5721, 5725, 5740, 5745, 5752, 5756, - 5769, 5783, 5797, 5811, 5825, 5846, 5854, 5860, 5866, 5872, - 5881, 5885, 5889, 5897, 5903, 5909, 5917, 5925, 5932, 5940, - 5955, 5969, 5983, 5995, 6011, 6020, 6029, 6039, 6050, 6058, - 6066, 6070, 6089, 6096, 6102, 6109, 6117, 6116, 6126, 6140, - 6142, 6147, 6152, 6160, 6169, 6182, 6185, 6189 + 0, 227, 227, 228, 233, 235, 239, 240, 241, 242, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 278, 282, 289, 294, + 299, 313, 326, 339, 367, 381, 394, 407, 426, 431, + 432, 433, 434, 435, 439, 441, 446, 448, 454, 558, + 453, 576, 583, 594, 593, 611, 618, 629, 628, 645, + 662, 685, 684, 698, 699, 700, 701, 702, 706, 707, + 713, 713, 714, 714, 720, 721, 722, 723, 728, 734, + 796, 813, 842, 871, 876, 881, 886, 891, 898, 908, + 937, 966, 971, 976, 981, 989, 998, 1004, 1010, 1023, + 1036, 1051, 1068, 1074, 1080, 1093, 1106, 1121, 1138, 1145, + 1154, 1173, 1192, 1202, 1214, 1220, 1228, 1249, 1272, 1283, + 1291, 1313, 1336, 1374, 1395, 1407, 1421, 1421, 1423, 1425, + 1434, 1444, 1443, 1464, 1463, 1482, 1481, 1499, 1509, 1508, + 1522, 1524, 1532, 1538, 1543, 1569, 1570, 1574, 1585, 1600, + 1610, 1611, 1616, 1624, 1633, 1641, 1659, 1663, 1669, 1677, + 1681, 1687, 1695, 1699, 1705, 1713, 1717, 1723, 1732, 1735, + 1742, 1745, 1752, 1773, 1787, 1801, 1836, 1874, 1888, 1902, + 1922, 1931, 1945, 1960, 1974, 1993, 2003, 2009, 2015, 2022, + 2049, 2064, 2084, 2105, 2126, 2147, 2169, 2191, 2212, 2235, + 2244, 2265, 2280, 2294, 2309, 2324, 2333, 2343, 2353, 2363, + 2378, 2389, 2402, 2414, 2426, 2438, 2475, 2486, 2502, 2503, + 2508, 2511, 2515, 2526, 2537, 2548, 2564, 2583, 2604, 2619, + 2635, 2653, 2704, 2725, 2747, 2770, 2875, 2891, 2929, 2943, + 2949, 2964, 2992, 3009, 3015, 3026, 3040, 3046, 3052, 3058, + 3064, 3070, 3081, 3154, 3172, 3189, 3204, 3237, 3249, 3273, + 3277, 3282, 3289, 3294, 3304, 3309, 3315, 3323, 3327, 3331, + 3340, 3404, 3420, 3437, 3454, 3476, 3498, 3533, 3541, 3549, + 3555, 3562, 3569, 3589, 3615, 3627, 3639, 3655, 3671, 3680, + 3679, 3694, 3693, 3708, 3707, 3722, 3721, 3734, 3747, 3761, + 3775, 3794, 3797, 3803, 3815, 3835, 3839, 3843, 3847, 3851, + 3855, 3859, 3863, 3872, 3885, 3886, 3887, 3888, 3889, 3893, + 3894, 3895, 3898, 3916, 3933, 3950, 3953, 3969, 3972, 3989, + 3992, 3998, 4001, 4008, 4011, 4018, 4035, 4076, 4120, 4159, + 4184, 4193, 4223, 4249, 4275, 4307, 4334, 4360, 4386, 4412, + 4438, 4460, 4466, 4472, 4478, 4484, 4490, 4516, 4542, 4559, + 4576, 4593, 4605, 4611, 4617, 4629, 4633, 4643, 4654, 4655, + 4656, 4660, 4666, 4678, 4696, 4724, 4725, 4726, 4727, 4728, + 4729, 4730, 4731, 4732, 4739, 4740, 4741, 4742, 4743, 4744, + 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, + 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, + 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4780, 4781, 4782, + 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4795, 4794, + 4802, 4804, 4809, 4814, 4837, 4855, 4873, 4891, 4909, 4914, + 4920, 4935, 4954, 4974, 4994, 5014, 5044, 5062, 5067, 5077, + 5087, 5092, 5103, 5112, 5117, 5122, 5151, 5150, 5163, 5165, + 5170, 5179, 5181, 5190, 5194, 5198, 5202, 5206, 5213, 5217, + 5221, 5225, 5232, 5237, 5244, 5249, 5253, 5258, 5262, 5270, + 5281, 5285, 5297, 5305, 5313, 5320, 5330, 5353, 5359, 5365, + 5371, 5377, 5388, 5399, 5410, 5421, 5427, 5433, 5439, 5445, + 5455, 5465, 5475, 5487, 5500, 5512, 5516, 5520, 5524, 5528, + 5546, 5564, 5572, 5580, 5609, 5619, 5638, 5643, 5647, 5651, + 5663, 5667, 5679, 5696, 5706, 5710, 5725, 5730, 5737, 5741, + 5754, 5768, 5782, 5796, 5810, 5831, 5839, 5845, 5851, 5857, + 5866, 5870, 5874, 5882, 5888, 5894, 5902, 5910, 5917, 5925, + 5940, 5954, 5968, 5980, 5996, 6005, 6014, 6024, 6035, 6043, + 6051, 6055, 6074, 6081, 6087, 6094, 6102, 6101, 6111, 6125, + 6127, 6132, 6137, 6145, 6154, 6167, 6170, 6174 }; #endif @@ -6132,27 +6135,27 @@ yyreduce: switch (yyn) { case 3: -#line 225 "Gmsh.y" +#line 228 "Gmsh.y" { yyerrok; return 1; ;} break; case 6: -#line 236 "Gmsh.y" +#line 239 "Gmsh.y" { return 1; ;} break; case 7: -#line 237 "Gmsh.y" +#line 240 "Gmsh.y" { return 1; ;} break; case 8: -#line 238 "Gmsh.y" +#line 241 "Gmsh.y" { return 1; ;} break; case 9: -#line 240 "Gmsh.y" +#line 243 "Gmsh.y" { factory = (yyvsp[(3) - (5)].c); if(factory == "OpenCASCADE"){ @@ -6172,101 +6175,101 @@ yyreduce: break; case 10: -#line 256 "Gmsh.y" +#line 259 "Gmsh.y" { return 1; ;} break; case 11: -#line 257 "Gmsh.y" +#line 260 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 12: -#line 258 "Gmsh.y" +#line 261 "Gmsh.y" { return 1; ;} break; case 13: -#line 259 "Gmsh.y" +#line 262 "Gmsh.y" { return 1; ;} break; case 14: -#line 260 "Gmsh.y" +#line 263 "Gmsh.y" { return 1; ;} break; case 15: -#line 261 "Gmsh.y" +#line 264 "Gmsh.y" { return 1; ;} break; case 16: -#line 262 "Gmsh.y" +#line 265 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 17: -#line 263 "Gmsh.y" +#line 266 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 18: -#line 264 "Gmsh.y" +#line 267 "Gmsh.y" { return 1; ;} break; case 19: -#line 265 "Gmsh.y" +#line 268 "Gmsh.y" { return 1; ;} break; case 20: -#line 266 "Gmsh.y" +#line 269 "Gmsh.y" { return 1; ;} break; case 21: -#line 267 "Gmsh.y" +#line 270 "Gmsh.y" { return 1; ;} break; case 22: -#line 268 "Gmsh.y" +#line 271 "Gmsh.y" { return 1; ;} break; case 23: -#line 269 "Gmsh.y" +#line 272 "Gmsh.y" { return 1; ;} break; case 24: -#line 270 "Gmsh.y" +#line 273 "Gmsh.y" { return 1; ;} break; case 25: -#line 271 "Gmsh.y" +#line 274 "Gmsh.y" { return 1; ;} break; case 26: -#line 276 "Gmsh.y" +#line 279 "Gmsh.y" { (yyval.c) = (char*)"w"; ;} break; case 27: -#line 280 "Gmsh.y" +#line 283 "Gmsh.y" { (yyval.c) = (char*)"a"; ;} break; case 28: -#line 287 "Gmsh.y" +#line 290 "Gmsh.y" { Msg::Direct((yyvsp[(3) - (5)].c)); Free((yyvsp[(3) - (5)].c)); @@ -6274,7 +6277,7 @@ yyreduce: break; case 29: -#line 292 "Gmsh.y" +#line 295 "Gmsh.y" { Msg::Error((yyvsp[(3) - (5)].c)); Free((yyvsp[(3) - (5)].c)); @@ -6282,7 +6285,7 @@ yyreduce: break; case 30: -#line 297 "Gmsh.y" +#line 300 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(6) - (7)].c)); FILE *fp = Fopen(tmp.c_str(), (yyvsp[(5) - (7)].c)); @@ -6299,7 +6302,7 @@ yyreduce: break; case 31: -#line 311 "Gmsh.y" +#line 314 "Gmsh.y" { char tmpstring[5000]; int i = printListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring); @@ -6315,7 +6318,7 @@ yyreduce: break; case 32: -#line 324 "Gmsh.y" +#line 327 "Gmsh.y" { char tmpstring[5000]; int i = printListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring); @@ -6331,7 +6334,7 @@ yyreduce: break; case 33: -#line 337 "Gmsh.y" +#line 340 "Gmsh.y" { char tmpstring[5000]; int i = printListOfDouble((yyvsp[(3) - (9)].c), (yyvsp[(5) - (9)].l), tmpstring); @@ -6357,7 +6360,7 @@ yyreduce: break; case 34: -#line 365 "Gmsh.y" +#line 368 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (6)].c), "View") && ViewData->finalize()){ @@ -6374,7 +6377,7 @@ yyreduce: break; case 35: -#line 379 "Gmsh.y" +#line 382 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -6390,7 +6393,7 @@ yyreduce: break; case 36: -#line 392 "Gmsh.y" +#line 395 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -6406,7 +6409,7 @@ yyreduce: break; case 37: -#line 405 "Gmsh.y" +#line 408 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (8)].c), "View")){ @@ -6424,7 +6427,7 @@ yyreduce: break; case 38: -#line 423 "Gmsh.y" +#line 426 "Gmsh.y" { #if defined(HAVE_POST) ViewData = new PViewDataList(); @@ -6433,27 +6436,27 @@ yyreduce: break; case 44: -#line 437 "Gmsh.y" +#line 440 "Gmsh.y" { ViewCoord.push_back((yyvsp[(1) - (1)].d)); ;} break; case 45: -#line 439 "Gmsh.y" +#line 442 "Gmsh.y" { ViewCoord.push_back((yyvsp[(3) - (3)].d)); ;} break; case 46: -#line 444 "Gmsh.y" +#line 447 "Gmsh.y" { if(ViewValueList) ViewValueList->push_back((yyvsp[(1) - (1)].d)); ;} break; case 47: -#line 446 "Gmsh.y" +#line 449 "Gmsh.y" { if(ViewValueList) ViewValueList->push_back((yyvsp[(3) - (3)].d)); ;} break; case 48: -#line 451 "Gmsh.y" +#line 454 "Gmsh.y" { #if defined(HAVE_POST) if(!strncmp((yyvsp[(1) - (1)].c), "SP", 2)){ @@ -6560,7 +6563,7 @@ yyreduce: break; case 49: -#line 555 "Gmsh.y" +#line 558 "Gmsh.y" { #if defined(HAVE_POST) if(ViewValueList){ @@ -6573,7 +6576,7 @@ yyreduce: break; case 50: -#line 565 "Gmsh.y" +#line 568 "Gmsh.y" { #if defined(HAVE_POST) if(ViewValueList) (*ViewNumList)++; @@ -6582,7 +6585,7 @@ yyreduce: break; case 51: -#line 574 "Gmsh.y" +#line 577 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(1) - (1)].c)[i]); @@ -6592,7 +6595,7 @@ yyreduce: break; case 52: -#line 581 "Gmsh.y" +#line 584 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(3) - (3)].c)[i]); @@ -6602,7 +6605,7 @@ yyreduce: break; case 53: -#line 591 "Gmsh.y" +#line 594 "Gmsh.y" { #if defined(HAVE_POST) ViewData->T2D.push_back((yyvsp[(3) - (8)].d)); @@ -6614,7 +6617,7 @@ yyreduce: break; case 54: -#line 600 "Gmsh.y" +#line 603 "Gmsh.y" { #if defined(HAVE_POST) ViewData->NbT2++; @@ -6623,7 +6626,7 @@ yyreduce: break; case 55: -#line 609 "Gmsh.y" +#line 612 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(1) - (1)].c)[i]); @@ -6633,7 +6636,7 @@ yyreduce: break; case 56: -#line 616 "Gmsh.y" +#line 619 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(3) - (3)].c)[i]); @@ -6643,7 +6646,7 @@ yyreduce: break; case 57: -#line 626 "Gmsh.y" +#line 629 "Gmsh.y" { #if defined(HAVE_POST) ViewData->T3D.push_back((yyvsp[(3) - (10)].d)); ViewData->T3D.push_back((yyvsp[(5) - (10)].d)); @@ -6654,7 +6657,7 @@ yyreduce: break; case 58: -#line 634 "Gmsh.y" +#line 637 "Gmsh.y" { #if defined(HAVE_POST) ViewData->NbT3++; @@ -6663,7 +6666,7 @@ yyreduce: break; case 59: -#line 644 "Gmsh.y" +#line 647 "Gmsh.y" { #if defined(HAVE_POST) int type = @@ -6682,7 +6685,7 @@ yyreduce: break; case 60: -#line 663 "Gmsh.y" +#line 666 "Gmsh.y" { #if defined(HAVE_POST) int type = @@ -6701,7 +6704,7 @@ yyreduce: break; case 61: -#line 682 "Gmsh.y" +#line 685 "Gmsh.y" { #if defined(HAVE_POST) ViewValueList = &ViewData->Time; @@ -6710,68 +6713,68 @@ yyreduce: break; case 62: -#line 688 "Gmsh.y" +#line 691 "Gmsh.y" { ;} break; case 63: -#line 695 "Gmsh.y" +#line 698 "Gmsh.y" { (yyval.i) = 0; ;} break; case 64: -#line 696 "Gmsh.y" +#line 699 "Gmsh.y" { (yyval.i) = 1; ;} break; case 65: -#line 697 "Gmsh.y" +#line 700 "Gmsh.y" { (yyval.i) = 2; ;} break; case 66: -#line 698 "Gmsh.y" +#line 701 "Gmsh.y" { (yyval.i) = 3; ;} break; case 67: -#line 699 "Gmsh.y" +#line 702 "Gmsh.y" { (yyval.i) = 4; ;} break; case 68: -#line 703 "Gmsh.y" +#line 706 "Gmsh.y" { (yyval.i) = 1; ;} break; case 69: -#line 704 "Gmsh.y" +#line 707 "Gmsh.y" { (yyval.i) = -1; ;} break; case 70: -#line 710 "Gmsh.y" +#line 713 "Gmsh.y" { (yyval.c) = (char*)"("; ;} break; case 71: -#line 710 "Gmsh.y" +#line 713 "Gmsh.y" { (yyval.c) = (char*)"["; ;} break; case 72: -#line 711 "Gmsh.y" +#line 714 "Gmsh.y" { (yyval.c) = (char*)")"; ;} break; case 73: -#line 711 "Gmsh.y" +#line 714 "Gmsh.y" { (yyval.c) = (char*)"]"; ;} break; case 77: -#line 721 "Gmsh.y" +#line 724 "Gmsh.y" { Msg::SetOnelabNumber((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].d)); Free((yyvsp[(3) - (7)].c)); @@ -6779,7 +6782,7 @@ yyreduce: break; case 78: -#line 726 "Gmsh.y" +#line 729 "Gmsh.y" { Msg::SetOnelabString((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].c)); Free((yyvsp[(3) - (7)].c)); @@ -6788,7 +6791,7 @@ yyreduce: break; case 79: -#line 732 "Gmsh.y" +#line 735 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c)) && (yyvsp[(2) - (4)].i) && List_Nbr((yyvsp[(3) - (4)].l)) == 1){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (4)].c)); @@ -6853,7 +6856,7 @@ yyreduce: break; case 80: -#line 794 "Gmsh.y" +#line 797 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (3)].c)); @@ -6871,7 +6874,7 @@ yyreduce: break; case 81: -#line 811 "Gmsh.y" +#line 814 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -6903,7 +6906,7 @@ yyreduce: break; case 82: -#line 840 "Gmsh.y" +#line 843 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -6935,7 +6938,7 @@ yyreduce: break; case 83: -#line 869 "Gmsh.y" +#line 872 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); @@ -6943,7 +6946,7 @@ yyreduce: break; case 84: -#line 874 "Gmsh.y" +#line 877 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); @@ -6951,7 +6954,7 @@ yyreduce: break; case 85: -#line 879 "Gmsh.y" +#line 882 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); @@ -6959,7 +6962,7 @@ yyreduce: break; case 86: -#line 884 "Gmsh.y" +#line 887 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); @@ -6967,7 +6970,7 @@ yyreduce: break; case 87: -#line 889 "Gmsh.y" +#line 892 "Gmsh.y" { assignVariables((yyvsp[(1) - (9)].c), (yyvsp[(4) - (9)].l), (yyvsp[(7) - (9)].i), (yyvsp[(8) - (9)].l)); Free((yyvsp[(1) - (9)].c)); @@ -6977,7 +6980,7 @@ yyreduce: break; case 88: -#line 896 "Gmsh.y" +#line 899 "Gmsh.y" { assignVariables((yyvsp[(1) - (9)].c), (yyvsp[(4) - (9)].l), (yyvsp[(7) - (9)].i), (yyvsp[(8) - (9)].l)); Free((yyvsp[(1) - (9)].c)); @@ -6987,7 +6990,7 @@ yyreduce: break; case 89: -#line 906 "Gmsh.y" +#line 909 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -7019,7 +7022,7 @@ yyreduce: break; case 90: -#line 935 "Gmsh.y" +#line 938 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -7051,7 +7054,7 @@ yyreduce: break; case 91: -#line 964 "Gmsh.y" +#line 967 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); @@ -7059,7 +7062,7 @@ yyreduce: break; case 92: -#line 969 "Gmsh.y" +#line 972 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); @@ -7067,7 +7070,7 @@ yyreduce: break; case 93: -#line 974 "Gmsh.y" +#line 977 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); @@ -7075,7 +7078,7 @@ yyreduce: break; case 94: -#line 979 "Gmsh.y" +#line 982 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); @@ -7083,7 +7086,7 @@ yyreduce: break; case 95: -#line 987 "Gmsh.y" +#line 990 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (4)].c)] = std::vector<std::string>(1, (yyvsp[(3) - (4)].c)); Free((yyvsp[(1) - (4)].c)); @@ -7092,7 +7095,7 @@ yyreduce: break; case 96: -#line 996 "Gmsh.y" +#line 999 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); @@ -7100,7 +7103,7 @@ yyreduce: break; case 97: -#line 1002 "Gmsh.y" +#line 1005 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); @@ -7108,7 +7111,7 @@ yyreduce: break; case 98: -#line 1008 "Gmsh.y" +#line 1011 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7123,7 +7126,7 @@ yyreduce: break; case 99: -#line 1021 "Gmsh.y" +#line 1024 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7138,7 +7141,7 @@ yyreduce: break; case 100: -#line 1034 "Gmsh.y" +#line 1037 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7155,7 +7158,7 @@ yyreduce: break; case 101: -#line 1049 "Gmsh.y" +#line 1052 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7172,7 +7175,7 @@ yyreduce: break; case 102: -#line 1066 "Gmsh.y" +#line 1069 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); @@ -7180,7 +7183,7 @@ yyreduce: break; case 103: -#line 1072 "Gmsh.y" +#line 1075 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); @@ -7188,7 +7191,7 @@ yyreduce: break; case 104: -#line 1078 "Gmsh.y" +#line 1081 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7203,7 +7206,7 @@ yyreduce: break; case 105: -#line 1091 "Gmsh.y" +#line 1094 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7218,7 +7221,7 @@ yyreduce: break; case 106: -#line 1104 "Gmsh.y" +#line 1107 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7235,7 +7238,7 @@ yyreduce: break; case 107: -#line 1119 "Gmsh.y" +#line 1122 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7252,7 +7255,7 @@ yyreduce: break; case 108: -#line 1136 "Gmsh.y" +#line 1139 "Gmsh.y" { std::string tmp((yyvsp[(5) - (6)].c)); StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), tmp); @@ -7261,7 +7264,7 @@ yyreduce: break; case 109: -#line 1143 "Gmsh.y" +#line 1146 "Gmsh.y" { std::string tmp((yyvsp[(8) - (9)].c)); StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), tmp); @@ -7270,7 +7273,7 @@ yyreduce: break; case 110: -#line 1152 "Gmsh.y" +#line 1155 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d)){ @@ -7291,7 +7294,7 @@ yyreduce: break; case 111: -#line 1171 "Gmsh.y" +#line 1174 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d)){ @@ -7312,7 +7315,7 @@ yyreduce: break; case 112: -#line 1190 "Gmsh.y" +#line 1193 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d)){ @@ -7324,7 +7327,7 @@ yyreduce: break; case 113: -#line 1200 "Gmsh.y" +#line 1203 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d)){ @@ -7336,7 +7339,7 @@ yyreduce: break; case 114: -#line 1212 "Gmsh.y" +#line 1215 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), 0, (yyvsp[(5) - (8)].c), (yyvsp[(7) - (8)].u)); Free((yyvsp[(1) - (8)].c)); Free((yyvsp[(5) - (8)].c)); @@ -7344,7 +7347,7 @@ yyreduce: break; case 115: -#line 1218 "Gmsh.y" +#line 1221 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (11)].c), (int)(yyvsp[(3) - (11)].d), (yyvsp[(8) - (11)].c), (yyvsp[(10) - (11)].u)); Free((yyvsp[(1) - (11)].c)); Free((yyvsp[(8) - (11)].c)); @@ -7352,7 +7355,7 @@ yyreduce: break; case 116: -#line 1226 "Gmsh.y" +#line 1229 "Gmsh.y" { GmshColorTable *ct = GetColorTable(0); if(!ct) @@ -7375,7 +7378,7 @@ yyreduce: break; case 117: -#line 1247 "Gmsh.y" +#line 1250 "Gmsh.y" { GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (9)].d)); if(!ct) @@ -7398,7 +7401,7 @@ yyreduce: break; case 118: -#line 1270 "Gmsh.y" +#line 1273 "Gmsh.y" { #if defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (5)].c),"Background")) @@ -7412,7 +7415,7 @@ yyreduce: break; case 119: -#line 1281 "Gmsh.y" +#line 1284 "Gmsh.y" { #if defined(HAVE_MESH) if(!GModel::current()->getFields()->newField((int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c))) @@ -7423,7 +7426,7 @@ yyreduce: break; case 120: -#line 1289 "Gmsh.y" +#line 1292 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); @@ -7448,7 +7451,7 @@ yyreduce: break; case 121: -#line 1311 "Gmsh.y" +#line 1314 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); @@ -7474,7 +7477,7 @@ yyreduce: break; case 122: -#line 1334 "Gmsh.y" +#line 1337 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (11)].d)); @@ -7515,7 +7518,7 @@ yyreduce: break; case 123: -#line 1372 "Gmsh.y" +#line 1375 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (7)].d)); @@ -7536,7 +7539,7 @@ yyreduce: break; case 124: -#line 1393 "Gmsh.y" +#line 1396 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -7551,7 +7554,7 @@ yyreduce: break; case 125: -#line 1405 "Gmsh.y" +#line 1408 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -7566,7 +7569,7 @@ yyreduce: break; case 129: -#line 1423 "Gmsh.y" +#line 1426 "Gmsh.y" { std::string key((yyvsp[(3) - (3)].c)); std::vector<double> val(1, 0.); @@ -7578,7 +7581,7 @@ yyreduce: break; case 130: -#line 1432 "Gmsh.y" +#line 1435 "Gmsh.y" { std::string key((yyvsp[(3) - (5)].c)); std::vector<double> val(1, (yyvsp[(5) - (5)].d)); @@ -7590,12 +7593,12 @@ yyreduce: break; case 131: -#line 1441 "Gmsh.y" +#line 1444 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 132: -#line 1443 "Gmsh.y" +#line 1446 "Gmsh.y" { if(List_Nbr((yyvsp[(6) - (9)].l)) != 1) yymsg(1, "List notation should be used to define list '%s[]'", (yyvsp[(3) - (9)].c)); @@ -7616,12 +7619,12 @@ yyreduce: break; case 133: -#line 1461 "Gmsh.y" +#line 1464 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 134: -#line 1463 "Gmsh.y" +#line 1466 "Gmsh.y" { std::string key((yyvsp[(3) - (11)].c)); std::vector<double> val; @@ -7640,12 +7643,12 @@ yyreduce: break; case 135: -#line 1479 "Gmsh.y" +#line 1482 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 136: -#line 1481 "Gmsh.y" +#line 1484 "Gmsh.y" { std::string key((yyvsp[(3) - (11)].c)); std::vector<double> val; @@ -7664,7 +7667,7 @@ yyreduce: break; case 137: -#line 1497 "Gmsh.y" +#line 1500 "Gmsh.y" { std::string key((yyvsp[(3) - (5)].c)), val((yyvsp[(5) - (5)].c)); if(!gmsh_yystringsymbols.count(key)){ @@ -7676,12 +7679,12 @@ yyreduce: break; case 138: -#line 1506 "Gmsh.y" +#line 1509 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 139: -#line 1508 "Gmsh.y" +#line 1511 "Gmsh.y" { std::string key((yyvsp[(3) - (9)].c)), val((yyvsp[(6) - (9)].c)); if(!gmsh_yysymbols.count(key)){ @@ -7694,7 +7697,7 @@ yyreduce: break; case 141: -#line 1522 "Gmsh.y" +#line 1525 "Gmsh.y" { std::string name((yyvsp[(3) - (3)].c)); Msg::UndefineOnelabParameter(name); @@ -7703,7 +7706,7 @@ yyreduce: break; case 142: -#line 1530 "Gmsh.y" +#line 1533 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(doubleXstring)); doubleXstring v = {(yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].c)}; @@ -7712,7 +7715,7 @@ yyreduce: break; case 143: -#line 1536 "Gmsh.y" +#line 1539 "Gmsh.y" { doubleXstring v = {(yyvsp[(3) - (5)].d), (yyvsp[(5) - (5)].c)}; List_Add((yyval.l), &v); @@ -7720,7 +7723,7 @@ yyreduce: break; case 144: -#line 1541 "Gmsh.y" +#line 1544 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(doubleXstring)); int n = List_Nbr((yyvsp[(1) - (5)].l)); @@ -7747,7 +7750,7 @@ yyreduce: break; case 147: -#line 1572 "Gmsh.y" +#line 1575 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ @@ -7761,7 +7764,7 @@ yyreduce: break; case 148: -#line 1583 "Gmsh.y" +#line 1586 "Gmsh.y" { std::string key((yyvsp[(2) - (5)].c)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -7778,7 +7781,7 @@ yyreduce: break; case 149: -#line 1598 "Gmsh.y" +#line 1601 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); std::string val((yyvsp[(3) - (3)].c)); @@ -7789,7 +7792,7 @@ yyreduce: break; case 152: -#line 1614 "Gmsh.y" +#line 1617 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); double val = (yyvsp[(3) - (3)].d); @@ -7799,7 +7802,7 @@ yyreduce: break; case 153: -#line 1622 "Gmsh.y" +#line 1625 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); std::string val((yyvsp[(3) - (3)].c)); @@ -7810,7 +7813,7 @@ yyreduce: break; case 154: -#line 1631 "Gmsh.y" +#line 1634 "Gmsh.y" { std::string key("Macro"); std::string val((yyvsp[(3) - (3)].c)); @@ -7820,7 +7823,7 @@ yyreduce: break; case 155: -#line 1639 "Gmsh.y" +#line 1642 "Gmsh.y" { std::string key((yyvsp[(2) - (5)].c)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -7836,14 +7839,14 @@ yyreduce: break; case 156: -#line 1657 "Gmsh.y" +#line 1660 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; case 157: -#line 1661 "Gmsh.y" +#line 1664 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 0, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7852,7 +7855,7 @@ yyreduce: break; case 158: -#line 1667 "Gmsh.y" +#line 1670 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 0, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); @@ -7860,14 +7863,14 @@ yyreduce: break; case 159: -#line 1675 "Gmsh.y" +#line 1678 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; case 160: -#line 1679 "Gmsh.y" +#line 1682 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 1, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7876,7 +7879,7 @@ yyreduce: break; case 161: -#line 1685 "Gmsh.y" +#line 1688 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 1, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); @@ -7884,14 +7887,14 @@ yyreduce: break; case 162: -#line 1693 "Gmsh.y" +#line 1696 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; case 163: -#line 1697 "Gmsh.y" +#line 1700 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 2, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7900,7 +7903,7 @@ yyreduce: break; case 164: -#line 1703 "Gmsh.y" +#line 1706 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 2, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); @@ -7908,14 +7911,14 @@ yyreduce: break; case 165: -#line 1711 "Gmsh.y" +#line 1714 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; case 166: -#line 1715 "Gmsh.y" +#line 1718 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 3, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7924,7 +7927,7 @@ yyreduce: break; case 167: -#line 1721 "Gmsh.y" +#line 1724 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 3, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); @@ -7932,35 +7935,35 @@ yyreduce: break; case 168: -#line 1729 "Gmsh.y" +#line 1732 "Gmsh.y" { (yyval.i) = -1; ;} break; case 169: -#line 1733 "Gmsh.y" +#line 1736 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(4) - (5)].d); ;} break; case 170: -#line 1739 "Gmsh.y" +#line 1742 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.; ;} break; case 171: -#line 1743 "Gmsh.y" +#line 1746 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 172: -#line 1750 "Gmsh.y" +#line 1753 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); double x = CTX::instance()->geom.scalingFactor * (yyvsp[(6) - (7)].v)[0]; @@ -7984,7 +7987,7 @@ yyreduce: break; case 173: -#line 1771 "Gmsh.y" +#line 1774 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8001,7 +8004,7 @@ yyreduce: break; case 174: -#line 1785 "Gmsh.y" +#line 1788 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8018,7 +8021,7 @@ yyreduce: break; case 175: -#line 1799 "Gmsh.y" +#line 1802 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (8)].l), tags); @@ -8056,7 +8059,7 @@ yyreduce: break; case 176: -#line 1834 "Gmsh.y" +#line 1837 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (8)].l), tags); @@ -8097,7 +8100,7 @@ yyreduce: break; case 177: -#line 1872 "Gmsh.y" +#line 1875 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8114,7 +8117,7 @@ yyreduce: break; case 178: -#line 1886 "Gmsh.y" +#line 1889 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8131,7 +8134,7 @@ yyreduce: break; case 179: -#line 1901 "Gmsh.y" +#line 1904 "Gmsh.y" { int num = (int)(yyvsp[(3) - (11)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (11)].l), tags); @@ -8153,7 +8156,7 @@ yyreduce: break; case 180: -#line 1920 "Gmsh.y" +#line 1923 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8165,7 +8168,7 @@ yyreduce: break; case 181: -#line 1929 "Gmsh.y" +#line 1932 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8182,7 +8185,7 @@ yyreduce: break; case 182: -#line 1943 "Gmsh.y" +#line 1946 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8200,7 +8203,7 @@ yyreduce: break; case 183: -#line 1958 "Gmsh.y" +#line 1961 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8217,7 +8220,7 @@ yyreduce: break; case 184: -#line 1972 "Gmsh.y" +#line 1975 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); std::vector<int> wires; ListOfDouble2Vector((yyvsp[(6) - (8)].l), wires); @@ -8239,7 +8242,7 @@ yyreduce: break; case 185: -#line 1991 "Gmsh.y" +#line 1994 "Gmsh.y" { yymsg(2, "'Ruled Surface' command is deprecated: use 'Surface' instead"); int num = (int)(yyvsp[(4) - (9)].d); @@ -8252,7 +8255,7 @@ yyreduce: break; case 186: -#line 2001 "Gmsh.y" +#line 2004 "Gmsh.y" { myGmshSurface = 0; (yyval.s).Type = 0; @@ -8261,7 +8264,7 @@ yyreduce: break; case 187: -#line 2007 "Gmsh.y" +#line 2010 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); (yyval.s).Type = 0; @@ -8270,7 +8273,7 @@ yyreduce: break; case 188: -#line 2013 "Gmsh.y" +#line 2016 "Gmsh.y" { int num = (int)(yyvsp[(4) - (10)].d); myGmshSurface = gmshParametricSurface::NewParametricSurface(num, (yyvsp[(7) - (10)].c), (yyvsp[(8) - (10)].c), (yyvsp[(9) - (10)].c)); @@ -8280,7 +8283,7 @@ yyreduce: break; case 189: -#line 2020 "Gmsh.y" +#line 2023 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8310,7 +8313,7 @@ yyreduce: break; case 190: -#line 2047 "Gmsh.y" +#line 2050 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8328,7 +8331,7 @@ yyreduce: break; case 191: -#line 2062 "Gmsh.y" +#line 2065 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8351,7 +8354,7 @@ yyreduce: break; case 192: -#line 2082 "Gmsh.y" +#line 2085 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8375,7 +8378,7 @@ yyreduce: break; case 193: -#line 2103 "Gmsh.y" +#line 2106 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8399,7 +8402,7 @@ yyreduce: break; case 194: -#line 2124 "Gmsh.y" +#line 2127 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8423,7 +8426,7 @@ yyreduce: break; case 195: -#line 2145 "Gmsh.y" +#line 2148 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8448,7 +8451,7 @@ yyreduce: break; case 196: -#line 2167 "Gmsh.y" +#line 2170 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8473,7 +8476,7 @@ yyreduce: break; case 197: -#line 2189 "Gmsh.y" +#line 2192 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8497,7 +8500,7 @@ yyreduce: break; case 198: -#line 2210 "Gmsh.y" +#line 2213 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8523,7 +8526,7 @@ yyreduce: break; case 199: -#line 2233 "Gmsh.y" +#line 2236 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8535,7 +8538,7 @@ yyreduce: break; case 200: -#line 2243 "Gmsh.y" +#line 2246 "Gmsh.y" { int num = (int)(yyvsp[(4) - (12)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (12)].l), tags); @@ -8558,7 +8561,7 @@ yyreduce: break; case 201: -#line 2263 "Gmsh.y" +#line 2266 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8576,7 +8579,7 @@ yyreduce: break; case 202: -#line 2278 "Gmsh.y" +#line 2281 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8593,7 +8596,7 @@ yyreduce: break; case 203: -#line 2292 "Gmsh.y" +#line 2295 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> wires, out[4]; ListOfDouble2Vector((yyvsp[(6) - (7)].l), wires); @@ -8611,7 +8614,7 @@ yyreduce: break; case 204: -#line 2307 "Gmsh.y" +#line 2310 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> wires, out[4]; ListOfDouble2Vector((yyvsp[(7) - (8)].l), wires); @@ -8629,7 +8632,7 @@ yyreduce: break; case 205: -#line 2322 "Gmsh.y" +#line 2325 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8641,7 +8644,7 @@ yyreduce: break; case 206: -#line 2331 "Gmsh.y" +#line 2334 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8654,7 +8657,7 @@ yyreduce: break; case 207: -#line 2341 "Gmsh.y" +#line 2344 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8667,7 +8670,7 @@ yyreduce: break; case 208: -#line 2351 "Gmsh.y" +#line 2354 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8680,7 +8683,7 @@ yyreduce: break; case 209: -#line 2361 "Gmsh.y" +#line 2364 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8693,7 +8696,7 @@ yyreduce: break; case 210: -#line 2376 "Gmsh.y" +#line 2379 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(4) - (5)].l), tags); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -8707,7 +8710,7 @@ yyreduce: break; case 211: -#line 2387 "Gmsh.y" +#line 2390 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(10) - (11)].l), tags); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -8723,7 +8726,7 @@ yyreduce: break; case 212: -#line 2400 "Gmsh.y" +#line 2403 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(4) - (5)].l), tags); if(factory == "OpenCASCADE"){ @@ -8738,7 +8741,7 @@ yyreduce: break; case 213: -#line 2412 "Gmsh.y" +#line 2415 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(8) - (9)].l), tags); if(factory == "OpenCASCADE"){ @@ -8753,7 +8756,7 @@ yyreduce: break; case 214: -#line 2424 "Gmsh.y" +#line 2427 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(8) - (9)].l), tags); if(factory == "OpenCASCADE"){ @@ -8768,7 +8771,7 @@ yyreduce: break; case 215: -#line 2436 "Gmsh.y" +#line 2439 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); std::string action((yyvsp[(1) - (4)].c)); @@ -8808,7 +8811,7 @@ yyreduce: break; case 216: -#line 2473 "Gmsh.y" +#line 2476 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -8822,7 +8825,7 @@ yyreduce: break; case 217: -#line 2484 "Gmsh.y" +#line 2487 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); if(factory == "OpenCASCADE"){ @@ -8838,31 +8841,31 @@ yyreduce: break; case 218: -#line 2499 "Gmsh.y" +#line 2502 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 219: -#line 2500 "Gmsh.y" +#line 2503 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 220: -#line 2505 "Gmsh.y" +#line 2508 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; case 221: -#line 2509 "Gmsh.y" +#line 2512 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; case 222: -#line 2513 "Gmsh.y" +#line 2516 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8876,7 +8879,7 @@ yyreduce: break; case 223: -#line 2524 "Gmsh.y" +#line 2527 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8890,7 +8893,7 @@ yyreduce: break; case 224: -#line 2535 "Gmsh.y" +#line 2538 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8904,7 +8907,7 @@ yyreduce: break; case 225: -#line 2546 "Gmsh.y" +#line 2549 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8918,7 +8921,7 @@ yyreduce: break; case 226: -#line 2562 "Gmsh.y" +#line 2565 "Gmsh.y" { if(List_Nbr((yyvsp[(7) - (8)].l)) == 4){ int t = (int)(yyvsp[(4) - (8)].d); @@ -8940,7 +8943,7 @@ yyreduce: break; case 227: -#line 2581 "Gmsh.y" +#line 2584 "Gmsh.y" { int t = (int)(yyvsp[(4) - (10)].d); if(gLevelset::find(t)){ @@ -8964,7 +8967,7 @@ yyreduce: break; case 228: -#line 2603 "Gmsh.y" +#line 2606 "Gmsh.y" { int t = (int)(yyvsp[(4) - (14)].d); if(gLevelset::find(t)){ @@ -8981,7 +8984,7 @@ yyreduce: break; case 229: -#line 2618 "Gmsh.y" +#line 2621 "Gmsh.y" { int t = (int)(yyvsp[(4) - (16)].d); if(gLevelset::find(t)){ @@ -8999,7 +9002,7 @@ yyreduce: break; case 230: -#line 2633 "Gmsh.y" +#line 2636 "Gmsh.y" { if(List_Nbr((yyvsp[(10) - (12)].l)) == 1){ int t = (int)(yyvsp[(4) - (12)].d); @@ -9020,7 +9023,7 @@ yyreduce: break; case 231: -#line 2652 "Gmsh.y" +#line 2655 "Gmsh.y" { if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ int t = (int)(yyvsp[(4) - (14)].d); @@ -9073,7 +9076,7 @@ yyreduce: break; case 232: -#line 2703 "Gmsh.y" +#line 2706 "Gmsh.y" { if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ int t = (int)(yyvsp[(4) - (14)].d); @@ -9096,7 +9099,7 @@ yyreduce: break; case 233: -#line 2724 "Gmsh.y" +#line 2727 "Gmsh.y" { if(List_Nbr((yyvsp[(12) - (14)].l)) == 3){ int t = (int)(yyvsp[(4) - (14)].d); @@ -9120,7 +9123,7 @@ yyreduce: break; case 234: -#line 2746 "Gmsh.y" +#line 2749 "Gmsh.y" { if(List_Nbr((yyvsp[(12) - (14)].l)) == 5){ int t = (int)(yyvsp[(4) - (14)].d); @@ -9145,7 +9148,7 @@ yyreduce: break; case 235: -#line 2768 "Gmsh.y" +#line 2771 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (8)].c), "Union")){ int t = (int)(yyvsp[(4) - (8)].d); @@ -9253,7 +9256,7 @@ yyreduce: break; case 236: -#line 2873 "Gmsh.y" +#line 2876 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (8)].c), "MathEval")){ int t = (int)(yyvsp[(4) - (8)].d); @@ -9272,7 +9275,7 @@ yyreduce: break; case 237: -#line 2889 "Gmsh.y" +#line 2892 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "CutMesh")){ int t = (int)(yyvsp[(4) - (6)].d); @@ -9308,7 +9311,7 @@ yyreduce: break; case 238: -#line 2927 "Gmsh.y" +#line 2930 "Gmsh.y" { std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(3) - (4)].l), tags); for(int dim = 0; dim < 4; dim++){ @@ -9325,7 +9328,7 @@ yyreduce: break; case 239: -#line 2941 "Gmsh.y" +#line 2944 "Gmsh.y" { #if defined(HAVE_MESH) GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d)); @@ -9334,7 +9337,7 @@ yyreduce: break; case 240: -#line 2947 "Gmsh.y" +#line 2950 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -9352,7 +9355,7 @@ yyreduce: break; case 241: -#line 2962 "Gmsh.y" +#line 2965 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ ClearProject(); @@ -9383,7 +9386,7 @@ yyreduce: break; case 242: -#line 2990 "Gmsh.y" +#line 2993 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -9398,13 +9401,10 @@ yyreduce: break; case 243: -#line 3007 "Gmsh.y" +#line 3010 "Gmsh.y" { - for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ - Shape TheShape; - List_Read((yyvsp[(4) - (5)].l), i, &TheShape); - ColorShape(TheShape.Type, TheShape.Num, (yyvsp[(2) - (5)].u), false); - } + std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(4) - (5)].l), tags); + setColor(tags, (yyvsp[(2) - (5)].u), false); List_Delete((yyvsp[(4) - (5)].l)); ;} break; @@ -9412,17 +9412,14 @@ yyreduce: case 244: #line 3016 "Gmsh.y" { - for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++){ - Shape TheShape; - List_Read((yyvsp[(5) - (6)].l), i, &TheShape); - ColorShape(TheShape.Type, TheShape.Num, (yyvsp[(3) - (6)].u), true); - } + std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(5) - (6)].l), tags); + setColor(tags, (yyvsp[(3) - (6)].u), true); List_Delete((yyvsp[(5) - (6)].l)); ;} break; case 245: -#line 3030 "Gmsh.y" +#line 3027 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9434,73 +9431,61 @@ yyreduce: break; case 246: -#line 3044 "Gmsh.y" +#line 3041 "Gmsh.y" { - for(int i = 0; i < 4; i++) - VisibilityShape((yyvsp[(2) - (3)].c), i, 1, false); + std::string what = (yyvsp[(2) - (3)].c); + setVisibility(-1, 1, false); Free((yyvsp[(2) - (3)].c)); ;} break; case 247: -#line 3050 "Gmsh.y" +#line 3047 "Gmsh.y" { - for(int i = 0; i < 4; i++) - VisibilityShape((yyvsp[(2) - (3)].c), i, 0, false); + std::string what = (yyvsp[(2) - (3)].c); + setVisibility(-1, 0, false); Free((yyvsp[(2) - (3)].c)); ;} break; case 248: -#line 3056 "Gmsh.y" +#line 3053 "Gmsh.y" { - for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ - Shape TheShape; - List_Read((yyvsp[(3) - (4)].l), i, &TheShape); - VisibilityShape(TheShape.Type, TheShape.Num, 1, false); - } + std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(3) - (4)].l), tags); + setVisibility(tags, 1, false); List_Delete((yyvsp[(3) - (4)].l)); ;} break; case 249: -#line 3065 "Gmsh.y" +#line 3059 "Gmsh.y" { - for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ - Shape TheShape; - List_Read((yyvsp[(4) - (5)].l), i, &TheShape); - VisibilityShape(TheShape.Type, TheShape.Num, 1, true); - } + std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(4) - (5)].l), tags); + setVisibility(tags, 1, true); List_Delete((yyvsp[(4) - (5)].l)); ;} break; case 250: -#line 3074 "Gmsh.y" +#line 3065 "Gmsh.y" { - for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ - Shape TheShape; - List_Read((yyvsp[(3) - (4)].l), i, &TheShape); - VisibilityShape(TheShape.Type, TheShape.Num, 0, false); - } + std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(3) - (4)].l), tags); + setVisibility(tags, 0, false); List_Delete((yyvsp[(3) - (4)].l)); ;} break; case 251: -#line 3083 "Gmsh.y" +#line 3071 "Gmsh.y" { - for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ - Shape TheShape; - List_Read((yyvsp[(4) - (5)].l), i, &TheShape); - VisibilityShape(TheShape.Type, TheShape.Num, 0, true); - } + std::vector<int> tags[4]; ListOfShapes2Vectors((yyvsp[(4) - (5)].l), tags); + setVisibility(tags, 0, true); List_Delete((yyvsp[(4) - (5)].l)); ;} break; case 252: -#line 3097 "Gmsh.y" +#line 3082 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(2) - (3)].c)); @@ -9576,7 +9561,7 @@ yyreduce: break; case 253: -#line 3170 "Gmsh.y" +#line 3155 "Gmsh.y" { int n = List_Nbr((yyvsp[(3) - (5)].l)); if(n == 1){ @@ -9597,7 +9582,7 @@ yyreduce: break; case 254: -#line 3188 "Gmsh.y" +#line 3173 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -9617,7 +9602,7 @@ yyreduce: break; case 255: -#line 3205 "Gmsh.y" +#line 3190 "Gmsh.y" { #if defined(HAVE_POST) && defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -9635,7 +9620,7 @@ yyreduce: break; case 256: -#line 3220 "Gmsh.y" +#line 3205 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -9671,7 +9656,7 @@ yyreduce: break; case 257: -#line 3253 "Gmsh.y" +#line 3238 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -9686,7 +9671,7 @@ yyreduce: break; case 258: -#line 3265 "Gmsh.y" +#line 3250 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -9713,14 +9698,14 @@ yyreduce: break; case 259: -#line 3289 "Gmsh.y" +#line 3274 "Gmsh.y" { Msg::Exit(0); ;} break; case 260: -#line 3293 "Gmsh.y" +#line 3278 "Gmsh.y" { gmsh_yyerrorstate = 999; // this will be checked when yyparse returns YYABORT; @@ -9728,7 +9713,7 @@ yyreduce: break; case 261: -#line 3298 "Gmsh.y" +#line 3283 "Gmsh.y" { // force sync if(GModel::current()->getOCCInternals()) @@ -9738,7 +9723,7 @@ yyreduce: break; case 262: -#line 3305 "Gmsh.y" +#line 3290 "Gmsh.y" { new GModel(); GModel::current(GModel::list.size() - 1); @@ -9746,7 +9731,7 @@ yyreduce: break; case 263: -#line 3310 "Gmsh.y" +#line 3295 "Gmsh.y" { CTX::instance()->forcedBBox = 0; if(GModel::current()->getOCCInternals() && @@ -9759,7 +9744,7 @@ yyreduce: break; case 264: -#line 3320 "Gmsh.y" +#line 3305 "Gmsh.y" { CTX::instance()->forcedBBox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); @@ -9767,7 +9752,7 @@ yyreduce: break; case 265: -#line 3325 "Gmsh.y" +#line 3310 "Gmsh.y" { #if defined(HAVE_OPENGL) drawContext::global()->draw(); @@ -9776,7 +9761,7 @@ yyreduce: break; case 266: -#line 3331 "Gmsh.y" +#line 3316 "Gmsh.y" { #if defined(HAVE_OPENGL) CTX::instance()->mesh.changed = ENT_ALL; @@ -9787,21 +9772,21 @@ yyreduce: break; case 267: -#line 3339 "Gmsh.y" +#line 3324 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; case 268: -#line 3343 "Gmsh.y" +#line 3328 "Gmsh.y" { GModel::current()->createTopologyFromMesh(1); ;} break; case 269: -#line 3347 "Gmsh.y" +#line 3332 "Gmsh.y" { if(GModel::current()->getOCCInternals() && GModel::current()->getOCCInternals()->getChanged()) @@ -9813,7 +9798,7 @@ yyreduce: break; case 270: -#line 3357 "Gmsh.y" +#line 3342 "Gmsh.y" { int lock = CTX::instance()->lock; CTX::instance()->lock = 0; @@ -9874,7 +9859,7 @@ yyreduce: break; case 271: -#line 3420 "Gmsh.y" +#line 3405 "Gmsh.y" { #if defined(HAVE_POPPLER) std::vector<int> is; @@ -9889,7 +9874,7 @@ yyreduce: break; case 272: -#line 3436 "Gmsh.y" +#line 3421 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -9909,7 +9894,7 @@ yyreduce: break; case 273: -#line 3453 "Gmsh.y" +#line 3438 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -9929,7 +9914,7 @@ yyreduce: break; case 274: -#line 3470 "Gmsh.y" +#line 3455 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -9954,7 +9939,7 @@ yyreduce: break; case 275: -#line 3492 "Gmsh.y" +#line 3477 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -9979,7 +9964,7 @@ yyreduce: break; case 276: -#line 3514 "Gmsh.y" +#line 3499 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -10017,7 +10002,7 @@ yyreduce: break; case 277: -#line 3549 "Gmsh.y" +#line 3534 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10028,7 +10013,7 @@ yyreduce: break; case 278: -#line 3557 "Gmsh.y" +#line 3542 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10039,7 +10024,7 @@ yyreduce: break; case 279: -#line 3565 "Gmsh.y" +#line 3550 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10048,7 +10033,7 @@ yyreduce: break; case 280: -#line 3571 "Gmsh.y" +#line 3556 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10058,7 +10043,7 @@ yyreduce: break; case 281: -#line 3578 "Gmsh.y" +#line 3563 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10068,7 +10053,7 @@ yyreduce: break; case 282: -#line 3585 "Gmsh.y" +#line 3570 "Gmsh.y" { ImbricatedTest++; if(ImbricatedTest > MAX_RECUR_TESTS-1){ @@ -10091,7 +10076,7 @@ yyreduce: break; case 283: -#line 3605 "Gmsh.y" +#line 3590 "Gmsh.y" { if(ImbricatedTest > 0){ if (statusImbricatedTests[ImbricatedTest]){ @@ -10120,7 +10105,7 @@ yyreduce: break; case 284: -#line 3631 "Gmsh.y" +#line 3616 "Gmsh.y" { if(ImbricatedTest > 0){ if(statusImbricatedTests[ImbricatedTest]){ @@ -10135,7 +10120,7 @@ yyreduce: break; case 285: -#line 3643 "Gmsh.y" +#line 3628 "Gmsh.y" { ImbricatedTest--; if(ImbricatedTest < 0) @@ -10144,7 +10129,7 @@ yyreduce: break; case 286: -#line 3655 "Gmsh.y" +#line 3640 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -10163,7 +10148,7 @@ yyreduce: break; case 287: -#line 3671 "Gmsh.y" +#line 3656 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -10182,7 +10167,7 @@ yyreduce: break; case 288: -#line 3687 "Gmsh.y" +#line 3672 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -10193,7 +10178,7 @@ yyreduce: break; case 289: -#line 3695 "Gmsh.y" +#line 3680 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10202,7 +10187,7 @@ yyreduce: break; case 290: -#line 3701 "Gmsh.y" +#line 3686 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -10213,7 +10198,7 @@ yyreduce: break; case 291: -#line 3709 "Gmsh.y" +#line 3694 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10222,7 +10207,7 @@ yyreduce: break; case 292: -#line 3715 "Gmsh.y" +#line 3700 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -10233,7 +10218,7 @@ yyreduce: break; case 293: -#line 3723 "Gmsh.y" +#line 3708 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10242,7 +10227,7 @@ yyreduce: break; case 294: -#line 3729 "Gmsh.y" +#line 3714 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -10253,7 +10238,7 @@ yyreduce: break; case 295: -#line 3737 "Gmsh.y" +#line 3722 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10262,7 +10247,7 @@ yyreduce: break; case 296: -#line 3743 "Gmsh.y" +#line 3728 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -10272,7 +10257,7 @@ yyreduce: break; case 297: -#line 3750 "Gmsh.y" +#line 3735 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -10288,7 +10273,7 @@ yyreduce: break; case 298: -#line 3763 "Gmsh.y" +#line 3748 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -10305,7 +10290,7 @@ yyreduce: break; case 299: -#line 3777 "Gmsh.y" +#line 3762 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -10322,7 +10307,7 @@ yyreduce: break; case 300: -#line 3791 "Gmsh.y" +#line 3776 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -10341,19 +10326,19 @@ yyreduce: break; case 301: -#line 3810 "Gmsh.y" +#line 3795 "Gmsh.y" { ;} break; case 302: -#line 3813 "Gmsh.y" +#line 3798 "Gmsh.y" { ;} break; case 303: -#line 3819 "Gmsh.y" +#line 3804 "Gmsh.y" { int n = (int)fabs((yyvsp[(3) - (5)].d)); if(n){ // we accept n==0 to easily disable layers @@ -10368,7 +10353,7 @@ yyreduce: break; case 304: -#line 3831 "Gmsh.y" +#line 3816 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -10391,56 +10376,56 @@ yyreduce: break; case 305: -#line 3851 "Gmsh.y" +#line 3836 "Gmsh.y" { extr.mesh.ScaleLast = true; ;} break; case 306: -#line 3855 "Gmsh.y" +#line 3840 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; case 307: -#line 3859 "Gmsh.y" +#line 3844 "Gmsh.y" { extr.mesh.Recombine = (yyvsp[(2) - (3)].d) ? true : false; ;} break; case 308: -#line 3863 "Gmsh.y" +#line 3848 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1; ;} break; case 309: -#line 3867 "Gmsh.y" +#line 3852 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1_RECOMB; ;} break; case 310: -#line 3871 "Gmsh.y" +#line 3856 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1; ;} break; case 311: -#line 3875 "Gmsh.y" +#line 3860 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1_RECOMB; ;} break; case 312: -#line 3879 "Gmsh.y" +#line 3864 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (9)].l), tags); int num = (int)(yyvsp[(3) - (9)].d); @@ -10452,7 +10437,7 @@ yyreduce: break; case 313: -#line 3888 "Gmsh.y" +#line 3873 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "Index")) extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d); @@ -10463,47 +10448,47 @@ yyreduce: break; case 314: -#line 3900 "Gmsh.y" +#line 3885 "Gmsh.y" { (yyval.i) = OCC_Internals::Union; ;} break; case 315: -#line 3901 "Gmsh.y" +#line 3886 "Gmsh.y" { (yyval.i) = OCC_Internals::Intersection; ;} break; case 316: -#line 3902 "Gmsh.y" +#line 3887 "Gmsh.y" { (yyval.i) = OCC_Internals::Difference; ;} break; case 317: -#line 3903 "Gmsh.y" +#line 3888 "Gmsh.y" { (yyval.i) = OCC_Internals::Section; ;} break; case 318: -#line 3904 "Gmsh.y" +#line 3889 "Gmsh.y" { (yyval.i) = OCC_Internals::Fragments; ;} break; case 319: -#line 3908 "Gmsh.y" +#line 3893 "Gmsh.y" { (yyval.i) = 0; ;} break; case 320: -#line 3909 "Gmsh.y" +#line 3894 "Gmsh.y" { (yyval.i) = 1; ;} break; case 321: -#line 3910 "Gmsh.y" +#line 3895 "Gmsh.y" { (yyval.i) = (yyvsp[(2) - (3)].d); ;} break; case 322: -#line 3915 "Gmsh.y" +#line 3900 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -10523,7 +10508,7 @@ yyreduce: break; case 323: -#line 3932 "Gmsh.y" +#line 3917 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -10540,7 +10525,7 @@ yyreduce: break; case 324: -#line 3950 "Gmsh.y" +#line 3935 "Gmsh.y" { if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ std::vector<int> shape[4], tool[4], out[4]; @@ -10555,14 +10540,14 @@ yyreduce: break; case 325: -#line 3965 "Gmsh.y" +#line 3950 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; case 326: -#line 3969 "Gmsh.y" +#line 3954 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -10578,14 +10563,14 @@ yyreduce: break; case 327: -#line 3984 "Gmsh.y" +#line 3969 "Gmsh.y" { (yyval.i) = -1; // left ;} break; case 328: -#line 3988 "Gmsh.y" +#line 3973 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -10602,49 +10587,49 @@ yyreduce: break; case 329: -#line 4004 "Gmsh.y" +#line 3989 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; case 330: -#line 4008 "Gmsh.y" +#line 3993 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; case 331: -#line 4013 "Gmsh.y" +#line 3998 "Gmsh.y" { (yyval.i) = 45; ;} break; case 332: -#line 4017 "Gmsh.y" +#line 4002 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; case 333: -#line 4023 "Gmsh.y" +#line 4008 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; case 334: -#line 4027 "Gmsh.y" +#line 4012 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; case 335: -#line 4034 "Gmsh.y" +#line 4019 "Gmsh.y" { // mesh sizes at vertices are stored in internal CAD data, as they can be // specified during vertex creation and copied around during CAD @@ -10664,7 +10649,7 @@ yyreduce: break; case 336: -#line 4051 "Gmsh.y" +#line 4036 "Gmsh.y" { // transfinite constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10708,7 +10693,7 @@ yyreduce: break; case 337: -#line 4092 "Gmsh.y" +#line 4077 "Gmsh.y" { // transfinite constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10755,7 +10740,7 @@ yyreduce: break; case 338: -#line 4136 "Gmsh.y" +#line 4121 "Gmsh.y" { // transfinite constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10797,7 +10782,7 @@ yyreduce: break; case 339: -#line 4175 "Gmsh.y" +#line 4160 "Gmsh.y" { // transfinite constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10825,7 +10810,7 @@ yyreduce: break; case 340: -#line 4200 "Gmsh.y" +#line 4185 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (8)].l)); i++){ double d; @@ -10837,7 +10822,7 @@ yyreduce: break; case 341: -#line 4209 "Gmsh.y" +#line 4194 "Gmsh.y" { // recombine constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10870,7 +10855,7 @@ yyreduce: break; case 342: -#line 4239 "Gmsh.y" +#line 4224 "Gmsh.y" { // recombine constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10899,7 +10884,7 @@ yyreduce: break; case 343: -#line 4265 "Gmsh.y" +#line 4250 "Gmsh.y" { // smoothing constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -10928,7 +10913,7 @@ yyreduce: break; case 344: -#line 4292 "Gmsh.y" +#line 4277 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (11)].l)) != List_Nbr((yyvsp[(8) - (11)].l))){ yymsg(0, "Number of master lines (%d) different from number of " @@ -10962,7 +10947,7 @@ yyreduce: break; case 345: -#line 4324 "Gmsh.y" +#line 4309 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (11)].l)) != List_Nbr((yyvsp[(8) - (11)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -10991,7 +10976,7 @@ yyreduce: break; case 346: -#line 4351 "Gmsh.y" +#line 4336 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (18)].l)) != List_Nbr((yyvsp[(8) - (18)].l))){ yymsg(0, "Number of master edges (%d) different from number of " @@ -11019,7 +11004,7 @@ yyreduce: break; case 347: -#line 4377 "Gmsh.y" +#line 4362 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (18)].l)) != List_Nbr((yyvsp[(8) - (18)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -11047,7 +11032,7 @@ yyreduce: break; case 348: -#line 4403 "Gmsh.y" +#line 4388 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (12)].l)) != List_Nbr((yyvsp[(8) - (12)].l))){ yymsg(0, "Number of master edges (%d) different from number of " @@ -11075,7 +11060,7 @@ yyreduce: break; case 349: -#line 4429 "Gmsh.y" +#line 4414 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (12)].l)) != List_Nbr((yyvsp[(8) - (12)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -11103,7 +11088,7 @@ yyreduce: break; case 350: -#line 4455 "Gmsh.y" +#line 4440 "Gmsh.y" { if (List_Nbr((yyvsp[(5) - (12)].l)) != List_Nbr((yyvsp[(10) - (12)].l))){ yymsg(0, "Number of master surface edges (%d) different from number of " @@ -11127,7 +11112,7 @@ yyreduce: break; case 351: -#line 4476 "Gmsh.y" +#line 4461 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (10)].l), tags); addEmbedded(0, tags, 2, (int)(yyvsp[(8) - (10)].d)); @@ -11136,7 +11121,7 @@ yyreduce: break; case 352: -#line 4482 "Gmsh.y" +#line 4467 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (10)].l), tags); addEmbedded(1, tags, 2, (int)(yyvsp[(8) - (10)].d)); @@ -11145,7 +11130,7 @@ yyreduce: break; case 353: -#line 4488 "Gmsh.y" +#line 4473 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (10)].l), tags); addEmbedded(0, tags, 3, (int)(yyvsp[(8) - (10)].d)); @@ -11154,7 +11139,7 @@ yyreduce: break; case 354: -#line 4494 "Gmsh.y" +#line 4479 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (10)].l), tags); addEmbedded(1, tags, 3, (int)(yyvsp[(8) - (10)].d)); @@ -11163,7 +11148,7 @@ yyreduce: break; case 355: -#line 4500 "Gmsh.y" +#line 4485 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (10)].l), tags); addEmbedded(2, tags, 3, (int)(yyvsp[(8) - (10)].d)); @@ -11172,7 +11157,7 @@ yyreduce: break; case 356: -#line 4506 "Gmsh.y" +#line 4491 "Gmsh.y" { // reverse mesh constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -11201,7 +11186,7 @@ yyreduce: break; case 357: -#line 4532 "Gmsh.y" +#line 4517 "Gmsh.y" { // reverse mesh constraints are stored in GEO internals in addition to // GModel, as they can be copied around during GEO operations @@ -11230,7 +11215,7 @@ yyreduce: break; case 358: -#line 4558 "Gmsh.y" +#line 4543 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::viter it = GModel::current()->firstVertex(); @@ -11250,7 +11235,7 @@ yyreduce: break; case 359: -#line 4575 "Gmsh.y" +#line 4560 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::eiter it = GModel::current()->firstEdge(); @@ -11270,7 +11255,7 @@ yyreduce: break; case 360: -#line 4592 "Gmsh.y" +#line 4577 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::fiter it = GModel::current()->firstFace(); @@ -11290,7 +11275,7 @@ yyreduce: break; case 361: -#line 4609 "Gmsh.y" +#line 4594 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ double dnum; @@ -11305,7 +11290,7 @@ yyreduce: break; case 362: -#line 4621 "Gmsh.y" +#line 4606 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); GModel::current()->getGEOInternals()->setCompoundMesh(1, tags); @@ -11314,7 +11299,7 @@ yyreduce: break; case 363: -#line 4627 "Gmsh.y" +#line 4612 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); GModel::current()->getGEOInternals()->setCompoundMesh(2, tags); @@ -11323,7 +11308,7 @@ yyreduce: break; case 364: -#line 4633 "Gmsh.y" +#line 4618 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); GModel::current()->getGEOInternals()->setCompoundMesh(3, tags); @@ -11332,14 +11317,14 @@ yyreduce: break; case 365: -#line 4645 "Gmsh.y" +#line 4630 "Gmsh.y" { GModel::current()->getGEOInternals()->removeAllDuplicates(); ;} break; case 366: -#line 4649 "Gmsh.y" +#line 4634 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) GModel::current()->getGEOInternals()->removeAllDuplicates(); @@ -11352,7 +11337,7 @@ yyreduce: break; case 367: -#line 4659 "Gmsh.y" +#line 4644 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(4) - (6)].l), tags); GModel::current()->getGEOInternals()->mergeVertices(tags); @@ -11361,22 +11346,22 @@ yyreduce: break; case 368: -#line 4669 "Gmsh.y" +#line 4654 "Gmsh.y" { (yyval.c) = (char*)"Homology"; ;} break; case 369: -#line 4670 "Gmsh.y" +#line 4655 "Gmsh.y" { (yyval.c) = (char*)"Cohomology"; ;} break; case 370: -#line 4671 "Gmsh.y" +#line 4656 "Gmsh.y" { (yyval.c) = (char*)"Betti"; ;} break; case 371: -#line 4676 "Gmsh.y" +#line 4661 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < 4; i++) dim.push_back(i); @@ -11385,7 +11370,7 @@ yyreduce: break; case 372: -#line 4682 "Gmsh.y" +#line 4667 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){ @@ -11400,7 +11385,7 @@ yyreduce: break; case 373: -#line 4694 "Gmsh.y" +#line 4679 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){ @@ -11421,7 +11406,7 @@ yyreduce: break; case 374: -#line 4712 "Gmsh.y" +#line 4697 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(6) - (10)].l)); i++){ @@ -11447,47 +11432,47 @@ yyreduce: break; case 375: -#line 4739 "Gmsh.y" +#line 4724 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 376: -#line 4740 "Gmsh.y" +#line 4725 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; case 377: -#line 4741 "Gmsh.y" +#line 4726 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; case 378: -#line 4742 "Gmsh.y" +#line 4727 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 379: -#line 4743 "Gmsh.y" +#line 4728 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; case 380: -#line 4744 "Gmsh.y" +#line 4729 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; case 381: -#line 4745 "Gmsh.y" +#line 4730 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; case 382: -#line 4746 "Gmsh.y" +#line 4731 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; case 383: -#line 4748 "Gmsh.y" +#line 4733 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -11497,232 +11482,232 @@ yyreduce: break; case 384: -#line 4754 "Gmsh.y" +#line 4739 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 385: -#line 4755 "Gmsh.y" +#line 4740 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 386: -#line 4756 "Gmsh.y" +#line 4741 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 387: -#line 4757 "Gmsh.y" +#line 4742 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 388: -#line 4758 "Gmsh.y" +#line 4743 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 389: -#line 4759 "Gmsh.y" +#line 4744 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 390: -#line 4760 "Gmsh.y" +#line 4745 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 391: -#line 4761 "Gmsh.y" +#line 4746 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 392: -#line 4762 "Gmsh.y" +#line 4747 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 393: -#line 4763 "Gmsh.y" +#line 4748 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 394: -#line 4764 "Gmsh.y" +#line 4749 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 395: -#line 4765 "Gmsh.y" +#line 4750 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 396: -#line 4766 "Gmsh.y" +#line 4751 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 397: -#line 4767 "Gmsh.y" +#line 4752 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 398: -#line 4768 "Gmsh.y" +#line 4753 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 399: -#line 4769 "Gmsh.y" +#line 4754 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 400: -#line 4770 "Gmsh.y" +#line 4755 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 401: -#line 4771 "Gmsh.y" +#line 4756 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 402: -#line 4772 "Gmsh.y" +#line 4757 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 403: -#line 4773 "Gmsh.y" +#line 4758 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 404: -#line 4774 "Gmsh.y" +#line 4759 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 405: -#line 4775 "Gmsh.y" +#line 4760 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 406: -#line 4776 "Gmsh.y" +#line 4761 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 407: -#line 4777 "Gmsh.y" +#line 4762 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 408: -#line 4778 "Gmsh.y" +#line 4763 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 409: -#line 4779 "Gmsh.y" +#line 4764 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 410: -#line 4780 "Gmsh.y" +#line 4765 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 411: -#line 4781 "Gmsh.y" +#line 4766 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 412: -#line 4782 "Gmsh.y" +#line 4767 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d) + 0.5); ;} break; case 413: -#line 4783 "Gmsh.y" +#line 4768 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 414: -#line 4784 "Gmsh.y" +#line 4769 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 415: -#line 4785 "Gmsh.y" +#line 4770 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 416: -#line 4786 "Gmsh.y" +#line 4771 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 417: -#line 4795 "Gmsh.y" +#line 4780 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 418: -#line 4796 "Gmsh.y" +#line 4781 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; case 419: -#line 4797 "Gmsh.y" +#line 4782 "Gmsh.y" { (yyval.d) = (double)ImbricatedTest; ;} break; case 420: -#line 4798 "Gmsh.y" +#line 4783 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; case 421: -#line 4799 "Gmsh.y" +#line 4784 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; case 422: -#line 4800 "Gmsh.y" +#line 4785 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; case 423: -#line 4801 "Gmsh.y" +#line 4786 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; case 424: -#line 4802 "Gmsh.y" +#line 4787 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; case 425: -#line 4803 "Gmsh.y" +#line 4788 "Gmsh.y" { (yyval.d) = Cpu(); ;} break; case 426: -#line 4804 "Gmsh.y" +#line 4789 "Gmsh.y" { (yyval.d) = GetMemoryUsage()/1024./1024.; ;} break; case 427: -#line 4805 "Gmsh.y" +#line 4790 "Gmsh.y" { (yyval.d) = TotalRam(); ;} break; case 428: -#line 4810 "Gmsh.y" +#line 4795 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 429: -#line 4812 "Gmsh.y" +#line 4797 "Gmsh.y" { std::vector<double> val(1, (yyvsp[(3) - (6)].d)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -11731,12 +11716,12 @@ yyreduce: break; case 430: -#line 4818 "Gmsh.y" +#line 4803 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 431: -#line 4820 "Gmsh.y" +#line 4805 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -11744,7 +11729,7 @@ yyreduce: break; case 432: -#line 4825 "Gmsh.y" +#line 4810 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -11752,7 +11737,7 @@ yyreduce: break; case 433: -#line 4830 "Gmsh.y" +#line 4815 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (1)].c)]); @@ -11778,7 +11763,7 @@ yyreduce: break; case 434: -#line 4853 "Gmsh.y" +#line 4838 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -11799,7 +11784,7 @@ yyreduce: break; case 435: -#line 4871 "Gmsh.y" +#line 4856 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -11820,7 +11805,7 @@ yyreduce: break; case 436: -#line 4889 "Gmsh.y" +#line 4874 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -11841,7 +11826,7 @@ yyreduce: break; case 437: -#line 4907 "Gmsh.y" +#line 4892 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -11862,7 +11847,7 @@ yyreduce: break; case 438: -#line 4925 "Gmsh.y" +#line 4910 "Gmsh.y" { (yyval.d) = gmsh_yysymbols.count((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -11870,7 +11855,7 @@ yyreduce: break; case 439: -#line 4930 "Gmsh.y" +#line 4915 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.d) = !StatFile(tmp); @@ -11879,7 +11864,7 @@ yyreduce: break; case 440: -#line 4936 "Gmsh.y" +#line 4921 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(2) - (4)].c)]); @@ -11897,7 +11882,7 @@ yyreduce: break; case 441: -#line 4951 "Gmsh.y" +#line 4936 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -11919,7 +11904,7 @@ yyreduce: break; case 442: -#line 4970 "Gmsh.y" +#line 4955 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -11942,7 +11927,7 @@ yyreduce: break; case 443: -#line 4990 "Gmsh.y" +#line 4975 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -11965,7 +11950,7 @@ yyreduce: break; case 444: -#line 5010 "Gmsh.y" +#line 4995 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -11988,7 +11973,7 @@ yyreduce: break; case 445: -#line 5030 "Gmsh.y" +#line 5015 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -12011,7 +11996,7 @@ yyreduce: break; case 446: -#line 5060 "Gmsh.y" +#line 5045 "Gmsh.y" { std::string key((yyvsp[(1) - (3)].c)); if(StructTable_M.count(key)) { @@ -12032,7 +12017,7 @@ yyreduce: break; case 447: -#line 5078 "Gmsh.y" +#line 5063 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); @@ -12040,7 +12025,7 @@ yyreduce: break; case 448: -#line 5083 "Gmsh.y" +#line 5068 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -12053,7 +12038,7 @@ yyreduce: break; case 449: -#line 5093 "Gmsh.y" +#line 5078 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -12066,7 +12051,7 @@ yyreduce: break; case 450: -#line 5103 "Gmsh.y" +#line 5088 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -12074,7 +12059,7 @@ yyreduce: break; case 451: -#line 5108 "Gmsh.y" +#line 5093 "Gmsh.y" { int matches = 0; for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ @@ -12088,7 +12073,7 @@ yyreduce: break; case 452: -#line 5119 "Gmsh.y" +#line 5104 "Gmsh.y" { std::string s((yyvsp[(3) - (6)].c)), substr((yyvsp[(5) - (6)].c)); if(s.find(substr) != std::string::npos) @@ -12100,7 +12085,7 @@ yyreduce: break; case 453: -#line 5128 "Gmsh.y" +#line 5113 "Gmsh.y" { (yyval.d) = strlen((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -12108,7 +12093,7 @@ yyreduce: break; case 454: -#line 5133 "Gmsh.y" +#line 5118 "Gmsh.y" { (yyval.d) = strcmp((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); Free((yyvsp[(3) - (6)].c)); Free((yyvsp[(5) - (6)].c)); @@ -12116,7 +12101,7 @@ yyreduce: break; case 455: -#line 5138 "Gmsh.y" +#line 5123 "Gmsh.y" { int align = 0, font = 0, fontsize = CTX::instance()->glFontSize; if(List_Nbr((yyvsp[(3) - (4)].l)) % 2){ @@ -12143,12 +12128,12 @@ yyreduce: break; case 456: -#line 5166 "Gmsh.y" +#line 5151 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 457: -#line 5169 "Gmsh.y" +#line 5154 "Gmsh.y" { std::string key(Struct_Name); StructTable_M[key] = Struct((int)(yyvsp[(6) - (8)].d), 1, floatOptions, charOptions); @@ -12158,22 +12143,22 @@ yyreduce: break; case 458: -#line 5179 "Gmsh.y" +#line 5164 "Gmsh.y" { Struct_NameSpace = NULL; Struct_Name = (yyvsp[(1) - (1)].c); ;} break; case 459: -#line 5181 "Gmsh.y" +#line 5166 "Gmsh.y" { Struct_NameSpace = (yyvsp[(1) - (4)].c); Struct_Name = (yyvsp[(4) - (4)].c); ;} break; case 460: -#line 5186 "Gmsh.y" +#line 5171 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); flag_tSTRING_alloc = 1; ;} break; case 462: -#line 5197 "Gmsh.y" +#line 5182 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)), val(Struct_Name); gmsh_yystringsymbols[key] = std::vector<std::string>(1, val); @@ -12182,70 +12167,70 @@ yyreduce: break; case 463: -#line 5206 "Gmsh.y" +#line 5191 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; case 464: -#line 5210 "Gmsh.y" +#line 5195 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; case 465: -#line 5214 "Gmsh.y" +#line 5199 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 466: -#line 5218 "Gmsh.y" +#line 5203 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; case 467: -#line 5222 "Gmsh.y" +#line 5207 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; case 468: -#line 5229 "Gmsh.y" +#line 5214 "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); ;} break; case 469: -#line 5233 "Gmsh.y" +#line 5218 "Gmsh.y" { (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; ;} break; case 470: -#line 5237 "Gmsh.y" +#line 5222 "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 471: -#line 5241 "Gmsh.y" +#line 5226 "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 472: -#line 5248 "Gmsh.y" +#line 5233 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); @@ -12253,14 +12238,14 @@ yyreduce: break; case 473: -#line 5253 "Gmsh.y" +#line 5238 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; case 474: -#line 5260 "Gmsh.y" +#line 5245 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -12268,14 +12253,14 @@ yyreduce: break; case 475: -#line 5265 "Gmsh.y" +#line 5250 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 476: -#line 5269 "Gmsh.y" +#line 5254 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); @@ -12283,14 +12268,14 @@ yyreduce: break; case 477: -#line 5274 "Gmsh.y" +#line 5259 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 478: -#line 5278 "Gmsh.y" +#line 5263 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12301,7 +12286,7 @@ yyreduce: break; case 479: -#line 5286 "Gmsh.y" +#line 5271 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12312,14 +12297,14 @@ yyreduce: break; case 480: -#line 5297 "Gmsh.y" +#line 5282 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 481: -#line 5301 "Gmsh.y" +#line 5286 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -12331,7 +12316,7 @@ yyreduce: break; case 482: -#line 5313 "Gmsh.y" +#line 5298 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12342,7 +12327,7 @@ yyreduce: break; case 483: -#line 5321 "Gmsh.y" +#line 5306 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12353,7 +12338,7 @@ yyreduce: break; case 484: -#line 5329 "Gmsh.y" +#line 5314 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -12363,7 +12348,7 @@ yyreduce: break; case 485: -#line 5336 "Gmsh.y" +#line 5321 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d)){ //|| ($1 < $3 && $5 < 0) || ($1 > $3 && $5 > 0) @@ -12376,7 +12361,7 @@ yyreduce: break; case 486: -#line 5346 "Gmsh.y" +#line 5331 "Gmsh.y" { (yyval.l) = List_Create(3, 1, sizeof(double)); int tag = (int)(yyvsp[(3) - (4)].d); @@ -12402,7 +12387,7 @@ yyreduce: break; case 487: -#line 5369 "Gmsh.y" +#line 5354 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getAllElementaryTags(0, (yyval.l)); @@ -12411,7 +12396,7 @@ yyreduce: break; case 488: -#line 5375 "Gmsh.y" +#line 5360 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getAllElementaryTags(1, (yyval.l)); @@ -12420,7 +12405,7 @@ yyreduce: break; case 489: -#line 5381 "Gmsh.y" +#line 5366 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getAllElementaryTags(2, (yyval.l)); @@ -12429,7 +12414,7 @@ yyreduce: break; case 490: -#line 5387 "Gmsh.y" +#line 5372 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getAllElementaryTags(3, (yyval.l)); @@ -12438,7 +12423,7 @@ yyreduce: break; case 491: -#line 5393 "Gmsh.y" +#line 5378 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); if(!(yyvsp[(3) - (3)].l)){ @@ -12452,7 +12437,7 @@ yyreduce: break; case 492: -#line 5404 "Gmsh.y" +#line 5389 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); if(!(yyvsp[(3) - (3)].l)){ @@ -12466,7 +12451,7 @@ yyreduce: break; case 493: -#line 5415 "Gmsh.y" +#line 5400 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); if(!(yyvsp[(3) - (3)].l)){ @@ -12480,7 +12465,7 @@ yyreduce: break; case 494: -#line 5426 "Gmsh.y" +#line 5411 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); if(!(yyvsp[(3) - (3)].l)){ @@ -12494,7 +12479,7 @@ yyreduce: break; case 495: -#line 5438 "Gmsh.y" +#line 5423 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getElementaryTagsInBoundingBox(0, (yyvsp[(5) - (16)].d), (yyvsp[(7) - (16)].d), (yyvsp[(9) - (16)].d), (yyvsp[(11) - (16)].d), (yyvsp[(13) - (16)].d), (yyvsp[(15) - (16)].d), (yyval.l)); @@ -12502,7 +12487,7 @@ yyreduce: break; case 496: -#line 5444 "Gmsh.y" +#line 5429 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getElementaryTagsInBoundingBox(1, (yyvsp[(5) - (16)].d), (yyvsp[(7) - (16)].d), (yyvsp[(9) - (16)].d), (yyvsp[(11) - (16)].d), (yyvsp[(13) - (16)].d), (yyvsp[(15) - (16)].d), (yyval.l)); @@ -12510,7 +12495,7 @@ yyreduce: break; case 497: -#line 5450 "Gmsh.y" +#line 5435 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getElementaryTagsInBoundingBox(2, (yyvsp[(5) - (16)].d), (yyvsp[(7) - (16)].d), (yyvsp[(9) - (16)].d), (yyvsp[(11) - (16)].d), (yyvsp[(13) - (16)].d), (yyvsp[(15) - (16)].d), (yyval.l)); @@ -12518,7 +12503,7 @@ yyreduce: break; case 498: -#line 5456 "Gmsh.y" +#line 5441 "Gmsh.y" { (yyval.l) = List_Create(10, 10, sizeof(double)); getElementaryTagsInBoundingBox(3, (yyvsp[(5) - (16)].d), (yyvsp[(7) - (16)].d), (yyvsp[(9) - (16)].d), (yyvsp[(11) - (16)].d), (yyvsp[(13) - (16)].d), (yyvsp[(15) - (16)].d), (yyval.l)); @@ -12526,7 +12511,7 @@ yyreduce: break; case 499: -#line 5461 "Gmsh.y" +#line 5446 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -12539,7 +12524,7 @@ yyreduce: break; case 500: -#line 5471 "Gmsh.y" +#line 5456 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -12552,7 +12537,7 @@ yyreduce: break; case 501: -#line 5481 "Gmsh.y" +#line 5466 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -12565,7 +12550,7 @@ yyreduce: break; case 502: -#line 5491 "Gmsh.y" +#line 5476 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -12580,7 +12565,7 @@ yyreduce: break; case 503: -#line 5503 "Gmsh.y" +#line 5488 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -12595,7 +12580,7 @@ yyreduce: break; case 504: -#line 5516 "Gmsh.y" +#line 5501 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(3) - (4)].c))) @@ -12610,35 +12595,35 @@ yyreduce: break; case 505: -#line 5528 "Gmsh.y" +#line 5513 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; case 506: -#line 5532 "Gmsh.y" +#line 5517 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; case 507: -#line 5536 "Gmsh.y" +#line 5521 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (6)].l); ;} break; case 508: -#line 5540 "Gmsh.y" +#line 5525 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (6)].l); ;} break; case 509: -#line 5544 "Gmsh.y" +#line 5529 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -12659,7 +12644,7 @@ yyreduce: break; case 510: -#line 5562 "Gmsh.y" +#line 5547 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -12680,7 +12665,7 @@ yyreduce: break; case 511: -#line 5580 "Gmsh.y" +#line 5565 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -12691,7 +12676,7 @@ yyreduce: break; case 512: -#line 5588 "Gmsh.y" +#line 5573 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -12702,7 +12687,7 @@ yyreduce: break; case 513: -#line 5596 "Gmsh.y" +#line 5581 "Gmsh.y" { Msg::Barrier(); FILE *File; @@ -12734,7 +12719,7 @@ yyreduce: break; case 514: -#line 5625 "Gmsh.y" +#line 5610 "Gmsh.y" { double x0 = (yyvsp[(3) - (14)].d), x1 = (yyvsp[(5) - (14)].d), y0 = (yyvsp[(7) - (14)].d), y1 = (yyvsp[(9) - (14)].d), ys = (yyvsp[(11) - (14)].d); int N = (int)(yyvsp[(13) - (14)].d); @@ -12747,7 +12732,7 @@ yyreduce: break; case 515: -#line 5635 "Gmsh.y" +#line 5620 "Gmsh.y" { std::vector<double> tmp; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ @@ -12766,7 +12751,7 @@ yyreduce: break; case 516: -#line 5654 "Gmsh.y" +#line 5639 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -12774,21 +12759,21 @@ yyreduce: break; case 517: -#line 5659 "Gmsh.y" +#line 5644 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 518: -#line 5663 "Gmsh.y" +#line 5648 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; case 519: -#line 5667 "Gmsh.y" +#line 5652 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -12800,21 +12785,21 @@ yyreduce: break; case 520: -#line 5679 "Gmsh.y" +#line 5664 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; case 521: -#line 5683 "Gmsh.y" +#line 5668 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; case 522: -#line 5695 "Gmsh.y" +#line 5680 "Gmsh.y" { int flag = 0; if(gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ @@ -12834,7 +12819,7 @@ yyreduce: break; case 523: -#line 5712 "Gmsh.y" +#line 5697 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -12844,14 +12829,14 @@ yyreduce: break; case 524: -#line 5722 "Gmsh.y" +#line 5707 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 525: -#line 5726 "Gmsh.y" +#line 5711 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -12866,7 +12851,7 @@ yyreduce: break; case 526: -#line 5741 "Gmsh.y" +#line 5726 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); @@ -12874,21 +12859,21 @@ yyreduce: break; case 527: -#line 5746 "Gmsh.y" +#line 5731 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; case 528: -#line 5753 "Gmsh.y" +#line 5738 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 529: -#line 5757 "Gmsh.y" +#line 5742 "Gmsh.y" { std::string val; if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))) @@ -12904,7 +12889,7 @@ yyreduce: break; case 530: -#line 5770 "Gmsh.y" +#line 5755 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -12921,7 +12906,7 @@ yyreduce: break; case 531: -#line 5784 "Gmsh.y" +#line 5769 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -12938,7 +12923,7 @@ yyreduce: break; case 532: -#line 5798 "Gmsh.y" +#line 5783 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -12955,7 +12940,7 @@ yyreduce: break; case 533: -#line 5812 "Gmsh.y" +#line 5797 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -12972,7 +12957,7 @@ yyreduce: break; case 534: -#line 5826 "Gmsh.y" +#line 5811 "Gmsh.y" { std::string out; std::string key((yyvsp[(1) - (3)].c)); @@ -12996,7 +12981,7 @@ yyreduce: break; case 535: -#line 5847 "Gmsh.y" +#line 5832 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -13007,7 +12992,7 @@ yyreduce: break; case 536: -#line 5855 "Gmsh.y" +#line 5840 "Gmsh.y" { std::string name = GModel::current()->getPhysicalName(0, (int)(yyvsp[(4) - (5)].d)); (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char)); @@ -13016,7 +13001,7 @@ yyreduce: break; case 537: -#line 5861 "Gmsh.y" +#line 5846 "Gmsh.y" { std::string name = GModel::current()->getPhysicalName(1, (int)(yyvsp[(4) - (5)].d)); (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char)); @@ -13025,7 +13010,7 @@ yyreduce: break; case 538: -#line 5867 "Gmsh.y" +#line 5852 "Gmsh.y" { std::string name = GModel::current()->getPhysicalName(2, (int)(yyvsp[(4) - (5)].d)); (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char)); @@ -13034,7 +13019,7 @@ yyreduce: break; case 539: -#line 5873 "Gmsh.y" +#line 5858 "Gmsh.y" { std::string name = GModel::current()->getPhysicalName(3, (int)(yyvsp[(4) - (5)].d)); (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char)); @@ -13043,21 +13028,21 @@ yyreduce: break; case 540: -#line 5882 "Gmsh.y" +#line 5867 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 541: -#line 5886 "Gmsh.y" +#line 5871 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 542: -#line 5890 "Gmsh.y" +#line 5875 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -13068,7 +13053,7 @@ yyreduce: break; case 543: -#line 5898 "Gmsh.y" +#line 5883 "Gmsh.y" { std::string exe = Msg::GetExecutableName(); (yyval.c) = (char *)Malloc(exe.size() + 1); @@ -13077,7 +13062,7 @@ yyreduce: break; case 544: -#line 5904 "Gmsh.y" +#line 5889 "Gmsh.y" { std::string action = Msg::GetOnelabAction(); (yyval.c) = (char *)Malloc(action.size() + 1); @@ -13086,7 +13071,7 @@ yyreduce: break; case 545: -#line 5910 "Gmsh.y" +#line 5895 "Gmsh.y" { const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c)); if(!env) env = ""; @@ -13097,7 +13082,7 @@ yyreduce: break; case 546: -#line 5918 "Gmsh.y" +#line 5903 "Gmsh.y" { std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -13108,7 +13093,7 @@ yyreduce: break; case 547: -#line 5926 "Gmsh.y" +#line 5911 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (4)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -13118,7 +13103,7 @@ yyreduce: break; case 548: -#line 5933 "Gmsh.y" +#line 5918 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -13129,7 +13114,7 @@ yyreduce: break; case 549: -#line 5941 "Gmsh.y" +#line 5926 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -13147,7 +13132,7 @@ yyreduce: break; case 550: -#line 5956 "Gmsh.y" +#line 5941 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -13164,7 +13149,7 @@ yyreduce: break; case 551: -#line 5970 "Gmsh.y" +#line 5955 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -13181,7 +13166,7 @@ yyreduce: break; case 552: -#line 5984 "Gmsh.y" +#line 5969 "Gmsh.y" { std::string input = (yyvsp[(3) - (8)].c); std::string substr_old = (yyvsp[(5) - (8)].c); @@ -13196,7 +13181,7 @@ yyreduce: break; case 553: -#line 5996 "Gmsh.y" +#line 5981 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -13215,7 +13200,7 @@ yyreduce: break; case 554: -#line 6012 "Gmsh.y" +#line 5997 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -13227,7 +13212,7 @@ yyreduce: break; case 555: -#line 6021 "Gmsh.y" +#line 6006 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -13239,7 +13224,7 @@ yyreduce: break; case 556: -#line 6030 "Gmsh.y" +#line 6015 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -13252,7 +13237,7 @@ yyreduce: break; case 557: -#line 6040 "Gmsh.y" +#line 6025 "Gmsh.y" { if((yyvsp[(3) - (8)].d)){ (yyval.c) = (yyvsp[(5) - (8)].c); @@ -13266,7 +13251,7 @@ yyreduce: break; case 558: -#line 6051 "Gmsh.y" +#line 6036 "Gmsh.y" { std::string in = (yyvsp[(3) - (8)].c); std::string out = in.substr((int)(yyvsp[(5) - (8)].d), (int)(yyvsp[(7) - (8)].d)); @@ -13277,7 +13262,7 @@ yyreduce: break; case 559: -#line 6059 "Gmsh.y" +#line 6044 "Gmsh.y" { std::string in = (yyvsp[(3) - (6)].c); std::string out = in.substr((int)(yyvsp[(5) - (6)].d), std::string::npos); @@ -13288,14 +13273,14 @@ yyreduce: break; case 560: -#line 6067 "Gmsh.y" +#line 6052 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 561: -#line 6071 "Gmsh.y" +#line 6056 "Gmsh.y" { char tmpstring[5000]; int i = printListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -13317,7 +13302,7 @@ yyreduce: break; case 562: -#line 6090 "Gmsh.y" +#line 6075 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13327,7 +13312,7 @@ yyreduce: break; case 563: -#line 6097 "Gmsh.y" +#line 6082 "Gmsh.y" { std::string tmp = SplitFileName(GetAbsolutePath(gmsh_yyname))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13336,7 +13321,7 @@ yyreduce: break; case 564: -#line 6103 "Gmsh.y" +#line 6088 "Gmsh.y" { std::string tmp = SplitFileName((yyvsp[(3) - (4)].c))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13346,7 +13331,7 @@ yyreduce: break; case 565: -#line 6110 "Gmsh.y" +#line 6095 "Gmsh.y" { std::string tmp = GetAbsolutePath((yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13356,12 +13341,12 @@ yyreduce: break; case 566: -#line 6117 "Gmsh.y" +#line 6102 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 567: -#line 6119 "Gmsh.y" +#line 6104 "Gmsh.y" { std::string val((yyvsp[(3) - (6)].c)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -13372,7 +13357,7 @@ yyreduce: break; case 568: -#line 6127 "Gmsh.y" +#line 6112 "Gmsh.y" { std::string out; int val = (int)(yyvsp[(3) - (4)].d); @@ -13385,17 +13370,17 @@ yyreduce: break; case 569: -#line 6141 "Gmsh.y" +#line 6126 "Gmsh.y" { Struct_NameSpace = NULL; (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 570: -#line 6143 "Gmsh.y" +#line 6128 "Gmsh.y" { Struct_NameSpace = (yyvsp[(1) - (5)].c); (yyval.d) = (yyvsp[(5) - (5)].d); ;} break; case 571: -#line 6148 "Gmsh.y" +#line 6133 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(char*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].c))); @@ -13403,14 +13388,14 @@ yyreduce: break; case 572: -#line 6153 "Gmsh.y" +#line 6138 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].c))); ;} break; case 573: -#line 6161 "Gmsh.y" +#line 6146 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -13421,7 +13406,7 @@ yyreduce: break; case 574: -#line 6170 "Gmsh.y" +#line 6155 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -13432,23 +13417,23 @@ yyreduce: break; case 575: -#line 6183 "Gmsh.y" +#line 6168 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 576: -#line 6186 "Gmsh.y" +#line 6171 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 577: -#line 6190 "Gmsh.y" +#line 6175 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; /* Line 1267 of yacc.c. */ -#line 13452 "Gmsh.tab.cpp" +#line 13437 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -13662,7 +13647,7 @@ yyreturn: } -#line 6193 "Gmsh.y" +#line 6178 "Gmsh.y" void assignVariable(const std::string &name, int index, int assignType, @@ -14191,6 +14176,53 @@ void getElementaryTagsInBoundingBox(int dim, double x1, double y1, double z1, } } +void setVisibility(int dim, int visible, bool recursive) +{ + if(GModel::current()->getOCCInternals() && + GModel::current()->getOCCInternals()->getChanged()) + GModel::current()->getOCCInternals()->synchronize(GModel::current()); + if(GModel::current()->getGEOInternals()->getChanged()) + GModel::current()->getGEOInternals()->synchronize(GModel::current()); + + std::vector<GEntity*> entities; + GModel::current()->getEntities(entities, dim); + for(unsigned int i = 0; i < entities.size(); i++){ + entities[i]->setVisibility(visible); + } +} + +void setVisibility(std::vector<int> tags[4], int visible, bool recursive) +{ + if(GModel::current()->getOCCInternals() && + GModel::current()->getOCCInternals()->getChanged()) + GModel::current()->getOCCInternals()->synchronize(GModel::current()); + if(GModel::current()->getGEOInternals()->getChanged()) + GModel::current()->getGEOInternals()->synchronize(GModel::current()); + + for(int dim = 0; dim < 4; dim++){ + for(unsigned int i = 0; i < tags[dim].size(); i++){ + GEntity *ge = GModel::current()->getEntityByTag(dim, std::abs(tags[dim][i])); + if(ge) ge->setVisibility(visible, recursive); + } + } +} + +void setColor(std::vector<int> tags[4], unsigned int val, bool recursive) +{ + if(GModel::current()->getOCCInternals() && + GModel::current()->getOCCInternals()->getChanged()) + GModel::current()->getOCCInternals()->synchronize(GModel::current()); + if(GModel::current()->getGEOInternals()->getChanged()) + GModel::current()->getGEOInternals()->synchronize(GModel::current()); + + for(int dim = 0; dim < 4; dim++){ + for(unsigned int i = 0; i < tags[dim].size(); i++){ + GEntity *ge = GModel::current()->getEntityByTag(dim, std::abs(tags[dim][i])); + if(ge) ge->setColor(val, recursive); + } + } +} + int NEWPOINT() { int tag = GModel::current()->getGEOInternals()->getMaxTag(0) + 1; diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index c0af9ebf1430e197f3dcb3742e2fbc7be8ffacd1..0e9de911e08a8d2a39ae0182d97522c537ee1dce 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -476,7 +476,7 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 130 "Gmsh.y" +#line 133 "Gmsh.y" { char *c; int i; diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 198fe57a802f51faf242fbc4ca2bf9cb90d3ead5..a55b82c2ce7829df7a8c37ff85d9e507fb8d4daf 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -22,7 +22,7 @@ #include "GModelIO_GEO.h" #include "GModelIO_OCC.h" #include "GeoDefines.h" -#include "Geo.h" // FIXME: remove once Extrusion, Color and Visibility have been refactored +#include "Geo.h" // FIXME: remove once Extrusion has been refactored #include "ExtrudeParams.h" #include "Options.h" #include "Parser.h" @@ -119,6 +119,9 @@ void getAllPhysicalTags(int dim, List_T *in); void getElementaryTagsForPhysicalGroups(int dim, List_T *in, List_T *out); void getElementaryTagsInBoundingBox(int dim, double x1, double y1, double z1, double x2, double y2, double z2, List_T *out); +void setVisibility(int dim, int visible, bool recursive); +void setVisibility(std::vector<int> tags[4], int visible, bool recursive); +void setColor(std::vector<int> tags[4], unsigned int val, bool recursive); struct doubleXstring{ double d; @@ -3005,20 +3008,14 @@ Delete : Colorify : tColor ColorExpr '{' ListOfShapes '}' { - for(int i = 0; i < List_Nbr($4); i++){ - Shape TheShape; - List_Read($4, i, &TheShape); - ColorShape(TheShape.Type, TheShape.Num, $2, false); - } + std::vector<int> tags[4]; ListOfShapes2Vectors($4, tags); + setColor(tags, $2, false); List_Delete($4); } | tRecursive tColor ColorExpr '{' ListOfShapes '}' { - for(int i = 0; i < List_Nbr($5); i++){ - Shape TheShape; - List_Read($5, i, &TheShape); - ColorShape(TheShape.Type, TheShape.Num, $3, true); - } + std::vector<int> tags[4]; ListOfShapes2Vectors($5, tags); + setColor(tags, $3, true); List_Delete($5); } ; @@ -3042,50 +3039,38 @@ SetPartition : Visibility : tShow tBIGSTR tEND { - for(int i = 0; i < 4; i++) - VisibilityShape($2, i, 1, false); + std::string what = $2; + setVisibility(-1, 1, false); Free($2); } | tHide tBIGSTR tEND { - for(int i = 0; i < 4; i++) - VisibilityShape($2, i, 0, false); + std::string what = $2; + setVisibility(-1, 0, false); Free($2); } | tShow '{' ListOfShapes '}' { - for(int i = 0; i < List_Nbr($3); i++){ - Shape TheShape; - List_Read($3, i, &TheShape); - VisibilityShape(TheShape.Type, TheShape.Num, 1, false); - } + std::vector<int> tags[4]; ListOfShapes2Vectors($3, tags); + setVisibility(tags, 1, false); List_Delete($3); } | tRecursive tShow '{' ListOfShapes '}' { - for(int i = 0; i < List_Nbr($4); i++){ - Shape TheShape; - List_Read($4, i, &TheShape); - VisibilityShape(TheShape.Type, TheShape.Num, 1, true); - } + std::vector<int> tags[4]; ListOfShapes2Vectors($4, tags); + setVisibility(tags, 1, true); List_Delete($4); } | tHide '{' ListOfShapes '}' { - for(int i = 0; i < List_Nbr($3); i++){ - Shape TheShape; - List_Read($3, i, &TheShape); - VisibilityShape(TheShape.Type, TheShape.Num, 0, false); - } + std::vector<int> tags[4]; ListOfShapes2Vectors($3, tags); + setVisibility(tags, 0, false); List_Delete($3); } | tRecursive tHide '{' ListOfShapes '}' { - for(int i = 0; i < List_Nbr($4); i++){ - Shape TheShape; - List_Read($4, i, &TheShape); - VisibilityShape(TheShape.Type, TheShape.Num, 0, true); - } + std::vector<int> tags[4]; ListOfShapes2Vectors($4, tags); + setVisibility(tags, 0, true); List_Delete($4); } ; @@ -6718,6 +6703,53 @@ void getElementaryTagsInBoundingBox(int dim, double x1, double y1, double z1, } } +void setVisibility(int dim, int visible, bool recursive) +{ + if(GModel::current()->getOCCInternals() && + GModel::current()->getOCCInternals()->getChanged()) + GModel::current()->getOCCInternals()->synchronize(GModel::current()); + if(GModel::current()->getGEOInternals()->getChanged()) + GModel::current()->getGEOInternals()->synchronize(GModel::current()); + + std::vector<GEntity*> entities; + GModel::current()->getEntities(entities, dim); + for(unsigned int i = 0; i < entities.size(); i++){ + entities[i]->setVisibility(visible); + } +} + +void setVisibility(std::vector<int> tags[4], int visible, bool recursive) +{ + if(GModel::current()->getOCCInternals() && + GModel::current()->getOCCInternals()->getChanged()) + GModel::current()->getOCCInternals()->synchronize(GModel::current()); + if(GModel::current()->getGEOInternals()->getChanged()) + GModel::current()->getGEOInternals()->synchronize(GModel::current()); + + for(int dim = 0; dim < 4; dim++){ + for(unsigned int i = 0; i < tags[dim].size(); i++){ + GEntity *ge = GModel::current()->getEntityByTag(dim, std::abs(tags[dim][i])); + if(ge) ge->setVisibility(visible, recursive); + } + } +} + +void setColor(std::vector<int> tags[4], unsigned int val, bool recursive) +{ + if(GModel::current()->getOCCInternals() && + GModel::current()->getOCCInternals()->getChanged()) + GModel::current()->getOCCInternals()->synchronize(GModel::current()); + if(GModel::current()->getGEOInternals()->getChanged()) + GModel::current()->getGEOInternals()->synchronize(GModel::current()); + + for(int dim = 0; dim < 4; dim++){ + for(unsigned int i = 0; i < tags[dim].size(); i++){ + GEntity *ge = GModel::current()->getEntityByTag(dim, std::abs(tags[dim][i])); + if(ge) ge->setColor(val, recursive); + } + } +} + int NEWPOINT() { int tag = GModel::current()->getGEOInternals()->getMaxTag(0) + 1; diff --git a/demos/boolean/import.geo b/demos/boolean/import.geo index 835090d9965ff2c4d20dedaa898b7e835ed23d11..351a96ed73493af3ddc220873c89f3156367fe5c 100644 --- a/demos/boolean/import.geo +++ b/demos/boolean/import.geo @@ -20,6 +20,8 @@ EndIf r() = BooleanFragments{ Volume{a(0)}; Delete; }{ Volume{b()}; Delete; }; +Recursive Color SteelBlue { Volume{r()}; } + Save "merged.brep"; Physical Volume("Combined volume", 1) = {r()};