Changeset 21791


Ignore:
Timestamp:
07/13/17 16:09:13 (8 years ago)
Author:
Mathieu Morlighem
Message:

CHG: getting rid of IcoorX

Location:
issm/trunk-jpl/src/c/bamg
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/bamg/AdjacentTriangle.cpp

    r18064 r21791  
    3434        }
    3535        /*}}}*/
    36         Icoor2 & AdjacentTriangle::det() const {/*{{{*/
     36        long long & AdjacentTriangle::det() const {/*{{{*/
    3737                return t->det;
    3838        }
  • issm/trunk-jpl/src/c/bamg/AdjacentTriangle.h

    r16233 r21791  
    3737                        AdjacentTriangle Adj() const;
    3838                        BamgVertex* EdgeVertex(const int & i) const;
    39                         Icoor2& det() const;
     39                        long long& det() const;
    4040        };
    4141}
  • issm/trunk-jpl/src/c/bamg/BamgVertex.cpp

    r21623 r21791  
    157157                double delta=Norme2_2(Xmove);
    158158
    159                 Icoor2 deta[3];
     159                long long deta[3];
    160160                I2 IBTh  = BTh.R2ToI2(PNew);
    161161
  • issm/trunk-jpl/src/c/bamg/ListofIntersectionTriangles.cpp

    r18064 r21791  
    193193                Triangle *tbegin, *t;
    194194
    195                 Icoor2 deta[3], deti,detj;
     195                long long deta[3], deti,detj;
    196196                double ba[3];
    197197                int ifirst=-1,ilast;
     
    199199                int ocut,i,j,k=-1;
    200200                //  int OnAVertices =0;
    201                 Icoor2 dt[3];
     201                long long dt[3];
    202202                I2 a = Bh.R2ToI2(A) ,b= Bh.R2ToI2(B);// compute  the Icoor a,b
    203203                I2 vi,vj; 
     
    356356                                k = OppositeVertex[ocut];
    357357
    358                                 Icoor2 detbij = bamg::det((*t)[i],(*t)[j],b);
     358                                long long detbij = bamg::det((*t)[i],(*t)[j],b);
    359359
    360360                                if (detbij >= 0) { //we find the triangle contening b
  • issm/trunk-jpl/src/c/bamg/Mesh.cpp

    r21629 r21791  
    10491049        }
    10501050        /*}}}*/
    1051         void Mesh::AddVertex( BamgVertex &s,Triangle* t, Icoor2* det3){/*{{{*/
     1051        void Mesh::AddVertex( BamgVertex &s,Triangle* t, long long* det3){/*{{{*/
    10521052                /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Add)*/
    10531053                // -------------------------------
     
    10681068                /*Intermediaries*/
    10691069                Triangle* tt[3];       //the three triangles
    1070                 Icoor2 det3local[3];   //three determinants (integer)
     1070                long long det3local[3];   //three determinants (integer)
    10711071                int nbzerodet =0;      //number of zeros in det3
    10721072                int izerodet=-1;       //egde containing the vertex s
     
    10791079
    10801080                //determinant of t
    1081                 Icoor2 detOld=t->det;
     1081                long long detOld=t->det;
    10821082
    10831083                /* infvertexindex = index of the infinite vertex (NULL)
     
    28052805
    28062806                        //Find the triangle in which newvertex is located
    2807                         Icoor2 det3[3];
     2807                        long long det3[3];
    28082808                        Triangle* tcvi = TriangleFindFromCoord(newvertex->i,det3); //(newvertex->i = integer coordinates)
    28092809
     
    28322832                long i;
    28332833                long NbSwap=0;
    2834                 Icoor2 det3[3];
     2834                long long det3[3];
    28352835
    28362836                //number of new points
     
    30173017
    30183018                I2 a = R2ToI2(A);
    3019                 Icoor2 deta[3];
     3019                long long deta[3];
    30203020                Triangle * t =TriangleFindFromCoord(a,deta);
    30213021                if (t->det <0) { // outside
     
    34763476                for (int icount=2; icount<nbvb; icount++) {
    34773477                        BamgVertex *vi  = orderedvertices[icount];
    3478                         Icoor2 det3[3];
     3478                        long long det3[3];
    34793479                        Triangle *tcvi = TriangleFindFromCoord(vi->i,det3);
    34803480                        quadtree->Add(*vi);
     
    38933893                        long  iv = nbvold;
    38943894                        long NbSwap = 0;
    3895                         Icoor2 det3[3]; 
     3895                        long long det3[3]; 
    38963896                        for (int i=nbvold;i<nbv;i++) {// for all the new point
    38973897                                BamgVertex & vi = vertices[i];
     
    39343934        }
    39353935        /*}}}*/
    3936         Triangle * Mesh::TriangleFindFromCoord(const I2 & B,Icoor2 det3[3], Triangle *tstart) const {/*{{{*/
     3936        Triangle * Mesh::TriangleFindFromCoord(const I2 & B,long long det3[3], Triangle *tstart) const {/*{{{*/
    39373937                /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/FindTriangleContening)*/
    39383938
     
    39633963                }
    39643964
    3965                 Icoor2  detop ;
     3965                long long  detop ;
    39663966
    39673967                /*initialize number of test triangle*/
     
    47484748                }
    47494749                int kkk=0; 
    4750                 Icoor2 IJ_IA,IJ_AJ;
     4750                long long IJ_IA,IJ_AJ;
    47514751                AdjacentTriangle edge(t,OppositeEdge[k]);         
    47524752                for (;;edge = dir >0 ? Next(Adj(Next(edge))) : Previous(Adj(Previous(edge)))) { 
     
    47924792                // we turn around a in the  direct direction 
    47934793
    4794                 Icoor2 det2 = v2 ? det(*v2,a,b): -1 , det1;
     4794                long long det2 = v2 ? det(*v2,a,b): -1 , det1;
    47954795                if(v2) // normal case
    47964796                 det2 = det(*v2,a,b);
     
    48194819                                        _error_("!v1 || !v2");
    48204820                                }
    4821                                 Icoor2 detss = 0,l=0;
     4821                                long long detss = 0,l=0;
    48224822                                while ((SwapForForcingEdge(  va,  vb, tc, detss, det1,det2,NbSwap)))
    48234823                                 if(l++ > 10000000) {
     
    48534853        }
    48544854        /*}}}*/
    4855         void  swap(Triangle *t1,short a1, Triangle *t2,short a2, BamgVertex *s1,BamgVertex *s2,Icoor2 det1,Icoor2 det2){ /*{{{*/
     4855        void  swap(Triangle *t1,short a1, Triangle *t2,short a2, BamgVertex *s1,BamgVertex *s2,long long det1,long long det2){ /*{{{*/
    48564856                /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/swap)*/
    48574857                // --------------------------------------------------------------
     
    48974897        } // end swap
    48984898        /*}}}*/
    4899         int SwapForForcingEdge(BamgVertex   *  & pva ,BamgVertex  * &   pvb ,AdjacentTriangle & tt1,Icoor2 & dets1, Icoor2 & detsa,Icoor2 & detsb, int & NbSwap) {/*{{{*/
     4899        int SwapForForcingEdge(BamgVertex   *  & pva ,BamgVertex  * &   pvb ,AdjacentTriangle & tt1,long long & dets1, long long & detsa,long long & detsb, int & NbSwap) {/*{{{*/
    49004900                /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/SwapForForcingEdge)*/
    49014901                // l'arete ta coupe l'arete pva pvb
     
    49184918                BamgVertex & s2= (*t2)[OppositeVertex[a2]];
    49194919
    4920                 Icoor2 dets2 = det(*pva,*pvb,s2);
    4921                 Icoor2 det1=t1->det , det2=t2->det ;
    4922                 Icoor2 detT = det1+det2;
     4920                long long dets2 = det(*pva,*pvb,s2);
     4921                long long det1=t1->det , det2=t2->det ;
     4922                long long detT = det1+det2;
    49234923                if ((det1<=0 ) || (det2<=0)){
    49244924                        _error_("(det1<=0 ) || (det2<=0)");
     
    49274927                        _error_("(detsa>=0) || (detsb<=0)");
    49284928                }
    4929                 Icoor2 ndet1 = bamg::det(s1,sa,s2);
    4930                 Icoor2 ndet2 = detT - ndet1;
     4929                long long ndet1 = bamg::det(s1,sa,s2);
     4930                long long ndet2 = detT - ndet1;
    49314931
    49324932                int ToSwap =0; //pas de swap
  • issm/trunk-jpl/src/c/bamg/Mesh.h

    r21629 r21791  
    3838
    3939                        R2                            pmin,pmax;             // extrema
    40                         double                        coefIcoor;             // coef to integer Icoor1;
     40                        double                        coefIcoor;             // coef to integer
    4141                        ListofIntersectionTriangles   lIntTria;
    4242
     
    7676                        I2 R2ToI2(const R2 & P) const;
    7777                        R2 I2ToR2(const I2 & P) const;
    78                         void AddVertex(BamgVertex & s,Triangle * t,Icoor2 *  =0) ;
     78                        void AddVertex(BamgVertex & s,Triangle * t,long long *  =0) ;
    7979                        void Insert(bool random);
    8080                        void Echo(void);
     
    103103                        long GetId(const Edge * t) const;
    104104                        BamgVertex* NearestVertex(int i,int j) ;
    105                         Triangle* TriangleFindFromCoord(const I2 & ,Icoor2 [3],Triangle *tstart=0) const;
     105                        Triangle* TriangleFindFromCoord(const I2 & ,long long [3],Triangle *tstart=0) const;
    106106                        void ReadMesh(int* index,double* x,double* y,int nods,int nels);
    107107                        void ReadMesh(BamgMesh* bamgmesh, BamgOpts* bamgopts);
     
    149149        void  swap(Triangle *t1,short a1,
    150150                                Triangle *t2,short a2,
    151                                 BamgVertex *s1,BamgVertex *s2,Icoor2 det1,Icoor2 det2);
     151                                BamgVertex *s1,BamgVertex *s2,long long det1,long long det2);
    152152        int SwapForForcingEdge(BamgVertex   *  & pva ,BamgVertex  * &   pvb ,
    153                                 AdjacentTriangle & tt1,Icoor2 & dets1,
    154                                 Icoor2 & detsa,Icoor2 & detsb, int & nbswap);
     153                                AdjacentTriangle & tt1,long long & dets1,
     154                                long long & detsa,long long & detsb, int & nbswap);
    155155        int ForceEdge(BamgVertex &a, BamgVertex & b,AdjacentTriangle & taret) ;
    156156        inline AdjacentTriangle Previous(const AdjacentTriangle & ta){
     
    170170                I2 ia=va,ib=vb,ic=vc;
    171171                I2 ab=ib-ia,bc=ic-ib,ac=ic-ia;
    172                 Icoor2 deta=Det(ab,ac);
     172                long long deta=Det(ab,ac);
    173173                if (deta <=0) ret = -1;
    174174                else {
  • issm/trunk-jpl/src/c/bamg/Triangle.cpp

    r21623 r21791  
    238238                BamgVertex  *s2=t2->vertices[OppositeVertex[a2]];
    239239
    240                 Icoor2 det1=t1->det , det2=t2->det ;
    241                 Icoor2 detT = det1+det2;
    242                 Icoor2 detA = Abs(det1) + Abs(det2);
    243                 Icoor2 detMin = Min(det1,det2);
     240                long long det1=t1->det , det2=t2->det ;
     241                long long detT = det1+det2;
     242                long long detA = Abs(det1) + Abs(det2);
     243                long long detMin = Min(det1,det2);
    244244
    245245                int OnSwap = 0;       
     
    256256                        OnSwap = (Abs(det1) + Abs(det2)) < detA;
    257257
    258                         Icoor2 detMinNew=Min(det1,det2);
     258                        long long detMinNew=Min(det1,det2);
    259259                        //     if (detMin<0 && (Abs(det1) + Abs(det2) == detA)) OnSwap=BinaryRand();// just for test   
    260260                        if (! OnSwap &&(detMinNew>0)) {
     
    265265                                         if(kopt) {
    266266                                                 // critere de Delaunay pure isotrope
    267                                                  Icoor2 xb1 = sb->i.x - s1->i.x,
     267                                                 long long xb1 = sb->i.x - s1->i.x,
    268268                                                                  x21 = s2->i.x - s1->i.x,
    269269                                                                  yb1 = sb->i.y - s1->i.y,
  • issm/trunk-jpl/src/c/bamg/Triangle.h

    r21623 r21791  
    2121
    2222                public:
    23                         Icoor2 det; //Integer determinant (twice its area)
     23                        long long det; //Integer determinant (twice its area)
    2424                        union {
    2525                                Triangle *link;
  • issm/trunk-jpl/src/c/bamg/det.h

    r15061 r21791  
    66namespace bamg {
    77
    8         Icoor2 inline det(const I2 &a,const I2 & b,const I2 &c){
    9                 Icoor2 bax = b.x - a.x ,bay = b.y - a.y;
    10                 Icoor2 cax = c.x - a.x ,cay = c.y - a.y;
     8        long long inline det(const I2 &a,const I2 & b,const I2 &c){
     9                long long bax = b.x - a.x ,bay = b.y - a.y;
     10                long long cax = c.x - a.x ,cay = c.y - a.y;
    1111                return  bax*cay - bay*cax;
    1212        }
  • issm/trunk-jpl/src/c/bamg/typedefs.h

    r15101 r21791  
    77
    88        /*Integer coordinates types*/
    9         typedef int  Icoor1;
    10         typedef long long Icoor2;
    119
    1210        /*I2 and R2*/
    13         typedef P2<Icoor1,Icoor2>  I2;
     11        typedef P2<int,long long>  I2;
    1412        typedef P2<double,double>  R2;
    1513}
Note: See TracChangeset for help on using the changeset viewer.