source: issm/oecreview/Archive/19101-20495/ISSM-19292-19293.diff

Last change on this file was 20498, checked in by Mathieu Morlighem, 9 years ago

CHG: done with Archive/19101-20495

File size: 4.1 KB
  • ../trunk-jpl/src/c/bamg/BamgVertex.h

     
    4747                        void   MetricFromHessian(const double Hxx,const double Hyx, const double Hyy, const double smin,const double smax,const double s,const double err,BamgOpts* bamgopts);
    4848                        void   Echo();
    4949                        int    GetReferenceNumber() const;
     50                        I2     GetIntegerCoordinates() const{return this->i;};// avoid operator I2()
    5051                        long   Optim(int =1,int =0);
    5152
    5253                        //inline functions
  • ../trunk-jpl/src/c/bamg/Triangle.h

     
    6464                        double qualite() ;
    6565                        void  Set(const Triangle &,const Mesh &,Mesh &);
    6666                        int   In(BamgVertex *v) const { return vertices[0]==v || vertices[1]==v || vertices[2]==v ;}
     67                        BamgVertex* GetVertex(int i){return vertices[i];}; // FIXME: this is used to avoid BamgVertex * operator()
    6768
    6869        };
    6970
  • ../trunk-jpl/src/c/bamg/Mesh.cpp

     
    10981098                }
    10991099        }
    11001100        /*}}}*/
    1101         void Mesh::AddVertex( BamgVertex &s,Triangle* t, Icoor2* det3) {/*{{{*/
     1101        void Mesh::AddVertex( BamgVertex &s,Triangle* t, Icoor2* det3){/*{{{*/
    11021102                /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Add)*/
    11031103                // -------------------------------
    11041104                //             s2
     
    11231123                int iedge;
    11241124
    11251125                /*three vertices of t*/
    1126                 BamgVertex &s0=(*t)[0];
    1127                 BamgVertex &s1=(*t)[1];
    1128                 BamgVertex &s2=(*t)[2];
     1126                BamgVertex* s0=t->GetVertex(0);
     1127                BamgVertex* s1=t->GetVertex(1);
     1128                BamgVertex* s2=t->GetVertex(2);
    11291129
    11301130                //determinant of t
    11311131                Icoor2 detOld=t->det;
     
    11331133                /* infvertexindex = index of the infinite vertex (NULL)
    11341134                        if no infinite vertex (NULL) infvertexindex=-1
    11351135                        else if v_i is infinite, infvertexindex=i*/
    1136                 int infvertexindex = &s0 ?  ((  &s1 ? ( &s2  ? -1 : 2) : 1  )) : 0;
     1136                int infvertexindex = s0 ? ((s1? (s2?-1:2):1)):0;
    11371137
    11381138                //some checks
    11391139                if(((infvertexindex <0 ) && (detOld <0)) ||  ((infvertexindex >=0) && (detOld >0)) ){
     
    11461146                        det3 = det3local;
    11471147                        //if no infinite vertex
    11481148                        if (infvertexindex<0 ) {
    1149                                 det3[0]=bamg::det(s ,s1,s2);
    1150                                 det3[1]=bamg::det(s0,s ,s2);
    1151                                 det3[2]=bamg::det(s0,s1,s );}
     1149                                det3[0]=bamg::det(s .GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s2->GetIntegerCoordinates());
     1150                                det3[1]=bamg::det(s0->GetIntegerCoordinates(),s .GetIntegerCoordinates(),s2->GetIntegerCoordinates());
     1151                                det3[2]=bamg::det(s0->GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s.GetIntegerCoordinates());}
    11521152                        else {
    11531153                                // one of &s1  &s2  &s0 is NULL
    1154                                 det3[0]= &s0 ? -1 : bamg::det(s ,s1,s2) ;
    1155                                 det3[1]= &s1 ? -1 : bamg::det(s0,s ,s2) ;
    1156                                 det3[2]= &s2 ? -1 : bamg::det(s0,s1,s ) ;
     1154                                det3[0]= s0 ? -1 : bamg::det(s.GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s2->GetIntegerCoordinates()) ;
     1155                                det3[1]= s1 ? -1 : bamg::det(s0->GetIntegerCoordinates(),s.GetIntegerCoordinates(),s2->GetIntegerCoordinates()) ;
     1156                                det3[2]= s2 ? -1 : bamg::det(s0->GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s.GetIntegerCoordinates()) ;
    11571157                        }
    11581158                }
    11591159
     
    37993799                // computation of the det
    38003800                int number_of_errors=0;
    38013801                for (i=0;i<nbt;i++) {
    3802                         BamgVertex & v0 = triangles[i][0];
    3803                         BamgVertex & v1 = triangles[i][1];
    3804                         BamgVertex & v2 = triangles[i][2];
     3802                        BamgVertex* v0 = triangles[i](0);
     3803                        BamgVertex* v1 = triangles[i](1);
     3804                        BamgVertex* v2 = triangles[i](2);
    38053805
    38063806                        //If this is not a boundary triangle
    3807                         if ( &v0 && &v1 &&  &v2 ){
     3807                        if (v0 && v1 && v2){
    38083808
    38093809                                /*Compute determinant*/
    3810                                 triangles[i].det= det(v0,v1,v2);
     3810                                triangles[i].det= det(v0->GetIntegerCoordinates(),v1->GetIntegerCoordinates(),v2->GetIntegerCoordinates());
    38113811
    38123812                                /*Check that determinant is positive*/
    38133813                                if (triangles[i].det <=0){
Note: See TracBrowser for help on using the repository browser.