Changeset 2960


Ignore:
Timestamp:
02/05/10 07:49:20 (15 years ago)
Author:
Mathieu Morlighem
Message:

minor

Location:
issm/trunk/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/Bamgx/objects/Triangle.cpp

    r2940 r2960  
    1919        /*Methods*/
    2020        /*FUNCTION Triangle::FindBoundaryEdge{{{1*/
    21         TriangleAdjacent Triangle::FindBoundaryEdge(int i) const
    22           {
     21        TriangleAdjacent Triangle::FindBoundaryEdge(int i) const{
    2322                // turn around  the vertex ns[i] also call  s
    24                 Triangle   *t = (Triangle *) this , *ttc;
     23                Triangle* t = (Triangle*)this;
     24                Triangle* ttc=NULL;
     25
    2526                int k=0,j = EdgesVertexTriangle[i][0],jc;
    2627                int exterieur  = !link  ;
    2728
    28                 do
    29                   {
     29                do{
    3030                        int exterieurp = exterieur;
    3131                        k++;
     
    3838                        j = NextEdge[jc];
    3939                        if (k>=2000){
    40                                 throw ErrorException(__FUNCT__,exprintf("k>=2000"));
     40                                throw ErrorException(__FUNCT__,exprintf("too many iteration in Triangle::FindBoundaryEdge (k>=2000)"));
    4141                        }
    42                   } while ( (this!= t));
     42                } while (this!= t);
    4343                return TriangleAdjacent(0,0);
    44           }
     44        }
    4545        /*}}}1*/
    4646        /*FUNCTION Triangle::Echo {{{1*/
  • issm/trunk/src/c/Bamgx/objects/Triangles.cpp

    r2958 r2960  
    2020        long NbUnSwap =0;
    2121        int  Triangles::counter = 0;
    22         Triangles* CurrentTh=NULL; //To delete
    2322
    2423        /*Constructors/Destructors*/
     
    137136        Triangles::~Triangles() {
    138137                long int verbosity=2;
    139                 if (CurrentTh == this) CurrentTh=0;
    140138                //if(vertices)  delete [] vertices; //TEST  crash if not commented
    141139                if(edges)     delete [] edges;
     
    415413                        if(verbose>3) printf("      no Edges found\n");
    416414                }
     415                //CrackedEdges
     416                if(bamgmesh->CrackedEdges){
     417                        if(verbose>3) printf("      processing CrackedEdges\n");
     418                        NbCrackedEdges=bamgmesh->NumCrackedEdges;
     419                        CrackedEdges=new CrackedEdge[NbCrackedEdges];
     420                        printf("NbCrackedEdges = %i\n",bamgmesh->NumCrackedEdges);
     421                        for (i=0;i<NbCrackedEdges;i++){
     422                                //CrackedEdges[i].a.edge=bamgmesh->CrackedEdges[i*2+0]-1; //C indexing
     423                                //CrackedEdges[i].b.edge=bamgmesh->CrackedEdges[i*1+0]-1; //C indexing
     424                                throw ErrorException(__FUNCT__,exprintf("not implemented yet"));
     425                        }
     426                }
     427                else{
     428                        if(verbose>3) printf("      no CrackedEdges found\n");
     429                }
    417430
    418431                //EdgeOnGeometricEdge
     
    886899                int    verbosity=bamgopts->verbose;
    887900                double cutoffradian=bamgopts->MaximalAngleOfCorner*Pi/180;
    888                 CurrentTh=this;
    889901
    890902                //display info
     
    967979                        printf("            - number of triangles   = %i \n",nbt);
    968980                        printf("            - number of given edges = %i \n",nbe);
    969                         printf("            - number of all edges   = %i \n"  ,edge4->nb());
    970                         printf("            - Euler number 1 - nb of holes = %i \n"  ,nbt-edge4->nb()+nbv);
     981                        printf("            - number of all edges   = %i \n",nbedges);
     982                        printf("            - Euler number 1 - nb of holes = %i \n"  ,nbt-nbedges+nbv);
    971983                }
    972984
     
    18581870                /*FUNCTION Triangles::CrackMesh{{{1*/
    18591871                int Triangles::CrackMesh() {
    1860                         long int verbosity=0;
    1861                         Triangles *CurrentThOld = CurrentTh;
     1872
     1873                        int verbosity=0;
     1874                        int i,k;
    18621875                        //  computed the number of cracked edge
    1863                         int i,k;
    18641876                        for (k=i=0;i<nbe;i++)
    18651877                         if(edges[i].onGeometry->Cracked()) k++;
    18661878                        if( k==0) return 0;
    1867                         CurrentTh = this;
    18681879                        printf("      number of Cracked Edges = %i\n",k);
    18691880                        NbCrackedEdges =k;
     
    19962007                                throw ErrorException(__FUNCT__,exprintf("Not enougth vertices: to crack the mesh we need %i vertices",nbv));
    19972008                        }
    1998                         CurrentTh = CurrentThOld;
    19992009                        return  NbCrackedVertices;
    20002010                }
     
    20392049        /*FUNCTION Triangles::FillHoleInMesh{{{1*/
    20402050        void Triangles::FillHoleInMesh() {
    2041 
    2042                 Triangles* OldCurrentTh =CurrentTh;
    2043                 CurrentTh=this;
    20442051
    20452052                int verbosity=0;
     
    21052112                        }
    21062113                        if(verbosity>5) {
    2107                                 printf("         info on Mesh\n");
     2114                                printf("         info on Mesh:\n");
    21082115                                printf("            - number of vertices    = %i \n",nbv);
    21092116                                printf("            - number of triangles   = %i \n",nbt);
     
    23252332                                 }
    23262333                  }
    2327                 CurrentTh=OldCurrentTh;
    23282334        }
    23292335        /*}}}1*/
     
    29472953                // NewPointsOld(*this) ;
    29482954                NewPoints(*this,0) ;
    2949                 CurrentTh = 0;
    29502955        }
    29512956        /*}}}1*/
     
    32883293
    32893294                NewPoints(BTh,KeepVertices) ;
    3290                 CurrentTh = 0;
    32913295        }
    32923296        /*}}}1*/
     
    33673371                long int verbosity=2;
    33683372                if (verbosity>2) printf("   Insert initial %i vertices\n",nbv);
    3369                 Triangles* OldCurrentTh=CurrentTh;
    3370                 CurrentTh=this;
    33713373                SetIntCoor();
    33723374                Int4 i;
     
    34733475                // because we break the TriangleContainingTheVertex
    34743476#endif
    3475                 CurrentTh=OldCurrentTh;
    34763477        }
    34773478        /*}}}1*/
     
    45164517                int ret =0;
    45174518                if (nbvx<nbv+nbe) return 1;//   
    4518                 Triangles *  OCurrentTh= CurrentTh;
    4519                 CurrentTh = this;
    45204519                // 1) create  the new points by spliting the internal edges
    45214520                // set the
     
    49844983                }
    49854984
    4986                 CurrentTh=OCurrentTh;
    49874985                return 0; //ok
    49884986
     
    49994997                if(newVertexOnBThEdge) delete []  newVertexOnBThEdge;
    50004998
    5001 
    5002                 CurrentTh= OCurrentTh;
    50034999                return ret; // ok
    50045000        }
     
    52465242        /*FUNCTION FindTriangle{{{1*/
    52475243        Int4 FindTriangle(Triangles &Th, Real8 x, Real8 y, double* a,int & inside){
    5248                 CurrentTh=&Th;
    52495244                I2 I = Th.toI2(R2(Min(Max(Th.pmin.x,x),Th.pmax.x),Min(Max(Th.pmin.y,y),Th.pmax.y)));
    52505245                Icoor2 dete[3];
  • issm/trunk/src/m/classes/public/bamg.m

    r2955 r2960  
    6666bamg_mesh.NumTriangles=0;
    6767bamg_mesh.Triangles=[];
    68 bamg_mesh.index=zeros(0,3);
     68bamg_mesh.NumEdges=0;
     69bamg_mesh.Edges=zeros(0,3);
    6970bamg_mesh.hVertices=[];
     71bamg_mesh.NumCrackedEdges=0;
     72bamg_mesh.CrackedEdges=zeros(0,2);
    7073if (~exist(options,'domain') & md.numberofgrids~=0 & strcmpi(md.type,'2d')),
    7174        bamg_mesh.NumVertices=md.numberofgrids;
     
    7881                        error(['hVertices option should be of size [' num2str(md.numberofgrids) ',1]']);
    7982                end
     83        end
     84        if isstruct(md.rifts)
     85                for i=1:length(md.rifts)
     86                        bamg_mesh.Edges=[bamg_mesh.Edges;md.rifts(i).segments];
     87                end
     88                bamg_mesh.NumEdges=size(bamg_mesh.Edges,1);
     89                bamg_mesh.NumCrackedEdges=bamg_mesh.NumEdges;
     90                bamg_mesh.CrackedEdges=[1 2;3 4];
    8091        end
    8192end
  • issm/trunk/src/mex/Bamg/Bamg.cpp

    r2955 r2960  
    2020        double* TrianglesMesh=NULL;
    2121        double* hVerticesMesh=NULL;
     22        int     NumCrackedEdgesMesh;
     23        double* CrackedEdgesMesh=NULL;
    2224
    2325        /*Geom inputs: */
     
    105107        bamgmesh.NumEdges=0;
    106108        bamgmesh.Edges=NULL;
    107         bamgmesh.NumCrackedEdges=0;
    108         bamgmesh.CrackedEdges=NULL;
     109        FetchData(&NumCrackedEdgesMesh,mxGetField(BAMGMESH,0,"NumCrackedEdges"));
     110        bamgmesh.NumCrackedEdges=NumCrackedEdgesMesh;
     111        FetchData(&CrackedEdgesMesh,NULL,NULL,mxGetField(BAMGMESH,0,"CrackedEdges"));
     112        bamgmesh.CrackedEdges=CrackedEdgesMesh;
    109113        bamgmesh.NumSubDomains=0;
    110114        bamgmesh.SubDomains=NULL;
Note: See TracChangeset for help on using the changeset viewer.