diff --git a/Mesh/Print_Mesh.cpp b/Mesh/Print_Mesh.cpp index 1dbd9819b8b4f99364333331a48adac9a5b5b15e..19fbf65539f7a2ef2486389f65bc5692ca12b3d1 100644 --- a/Mesh/Print_Mesh.cpp +++ b/Mesh/Print_Mesh.cpp @@ -1,4 +1,4 @@ -// $Id: Print_Mesh.cpp,v 1.71 2006-03-09 13:06:52 remacle Exp $ +// $Id: Print_Mesh.cpp,v 1.72 2006-03-24 21:37:14 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -566,12 +566,12 @@ static void _get_all_model_points ( std::list<Vertex*> &mp ) List_Read(curves, i, &c); if (c->Num >=0) { - if (points.find(c->beg) == points.end()) + if (c->beg && points.find(c->beg) == points.end()) { points.insert(c->beg); mp.push_back(c->beg); } - if (points.find(c->end) == points.end()) + if (c->end && points.find(c->end) == points.end()) { points.insert(c->end); mp.push_back(c->end); diff --git a/Mesh/Read_Mesh.cpp b/Mesh/Read_Mesh.cpp index a8dfccf1775b8c71ef18f584ed2eb10d7b1c3f73..c26fc82d19f136ea6ec3b9a2d7b3a6e2a961a3f5 100644 --- a/Mesh/Read_Mesh.cpp +++ b/Mesh/Read_Mesh.cpp @@ -1,4 +1,4 @@ -// $Id: Read_Mesh.cpp,v 1.100 2006-03-19 20:34:14 geuzaine Exp $ +// $Id: Read_Mesh.cpp,v 1.101 2006-03-24 21:37:14 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -231,7 +231,8 @@ void Read_Mesh_MSH(Mesh * M, FILE * fp) if(feof(fp)) break; - Msg(INFO, "%s\n", &String[1]); + Msg(INFO, "%s", &String[1]); + /* F o r m a t */ if(!strncmp(&String[1], "MeshFormat", 10)) { @@ -276,21 +277,20 @@ void Read_Mesh_MSH(Mesh * M, FILE * fp) /* NODE'S PROCESSORS */ - else if(!strncmp(&String[1], "PARA", 4)) - { - fscanf(fp, "%d", &Nbr_Nodes); - Msg(INFO,"%d parallel nodes\n",Nbr_Nodes); - for(i_Node = 0; i_Node < Nbr_Nodes; i_Node++) { - int nbProc; - fscanf(fp, "%d %d",&Num, &nbProc); - for (int iProc=0;iProc<nbProc;iProc++) - { - int iProcNum; - fscanf(fp, "%d",&iProcNum); - nod2proc.insert(std::pair<int, int>(Num,iProcNum )); - } + else if(!strncmp(&String[1], "PARA", 4)){ + fscanf(fp, "%d", &Nbr_Nodes); + Msg(INFO, "%d parallel nodes", Nbr_Nodes); + for(i_Node = 0; i_Node < Nbr_Nodes; i_Node++) { + int nbProc; + fscanf(fp, "%d %d", &Num, &nbProc); + for (int iProc = 0; iProc < nbProc; iProc++){ + int iProcNum; + fscanf(fp, "%d", &iProcNum); + nod2proc.insert(std::pair<int, int>(Num, iProcNum)); } } + } + /* NODES */ else if(!strncmp(&String[1], "NOD", 3) || @@ -377,16 +377,14 @@ void Read_Mesh_MSH(Mesh * M, FILE * fp) } } - for(j = 0; j < Nbr_Nodes; j++) - { - fscanf(fp, "%d", &verts[j].Num); - } - - if (nod2proc.size()) - { - Partition = getPartition ( nod2proc ,Nbr_Nodes , verts ); - } - + for(j = 0; j < Nbr_Nodes; j++){ + fscanf(fp, "%d", &verts[j].Num); + } + + if (nod2proc.size()){ + Partition = getPartition ( nod2proc ,Nbr_Nodes , verts ); + } + for(i = 0; i < Nbr_Nodes; i++) { vertsp[i] = &verts[i]; if(!(vertspp = (Vertex **) Tree_PQuery(M->Vertices, &vertsp[i]))) @@ -935,10 +933,10 @@ void Read_Mesh_SMS(Mesh * m, FILE * in) v4 = myS2->V[hh]; } if(!v1 || !v2 || !v3 || !v4) { - Msg(GERROR, "%d\n", NbFacesOnRegion); - Msg(GERROR, "%p %p %p %p\n", v1, v2, v3, v4); - Msg(GERROR, "%p %p %p \n", myS1->V[0], myS1->V[1], myS1->V[2]); - Msg(GERROR, "%p %p %p \n", myS2->V[0], myS2->V[1], myS2->V[2]); + Msg(GERROR, "%d", NbFacesOnRegion); + Msg(GERROR, "%p %p %p %p", v1, v2, v3, v4); + Msg(GERROR, "%p %p %p", myS1->V[0], myS1->V[1], myS1->V[2]); + Msg(GERROR, "%p %p %p", myS2->V[0], myS2->V[1], myS2->V[2]); return; } Simplex *s = Create_Simplex(v1, v2, v3, v4); diff --git a/doc/TODO b/doc/TODO index ac9b719beb2b73ef0d9fe6a4405c6eabf7f7ba86..8ddc5a28d32379851b9fdc3213a53ad2b33ee6e6 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,4 +1,11 @@ -$Id: TODO,v 1.2 2006-03-12 14:52:29 geuzaine Exp $ +$Id: TODO,v 1.3 2006-03-24 21:37:14 geuzaine Exp $ + +******************************************************************** + +if we try to mesh a surface from a single discrete curve mesh read +from a .msh file we get a "non contour" error in Mesh_2D (since we +List_Insert the vertices in c->Vertices, thus never having +last==first) ********************************************************************