Ignore:
Timestamp:
09/23/13 11:01:34 (12 years ago)
Author:
Mathieu Morlighem
Message:

DEL: removed legacy code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/c/bamg/BamgQuadtree.cpp ΒΆ

    r16158 r16233  
    391391        }
    392392        /*}}}*/
    393         /*FUNCTION BamgQuadtree::NearestVertexWithNormal{{{*/
    394         BamgVertex*  BamgQuadtree::NearestVertexWithNormal(Icoor1 i,Icoor1 j) {
    395                 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, BamgQuadtree.cpp/NearestVertexWithNormal)*/
    396 
    397                 BamgQuadtreeBox * pb[ MaxDepth ];
    398                 int  pi[ MaxDepth  ];
    399                 Icoor1 ii[  MaxDepth ], jj [ MaxDepth];
    400                 int l; // level
    401                 BamgQuadtreeBox * b;
    402                 long     h =MaxISize,h0;
    403                 long     hb=MaxISize;
    404                 Icoor1  i0=0,j0=0;
    405                 Icoor1  iplus( i<MaxISize?(i<0?0:i):MaxISize-1);
    406                 Icoor1  jplus( j<MaxISize?(j<0?0:j):MaxISize-1);
    407 
    408                 BamgVertex *vn=0;
    409 
    410                 // init for optimisation ---
    411                 b = root;
    412                 register long  n0;
    413                 if (!root->nbitems)
    414                  return vn; // empty tree
    415 
    416                 while( (n0 = b->nbitems) < 0)
    417                   {
    418                         // search the non empty
    419                         // BamgQuadtreeBox containing  the point (i,j)
    420                         register Icoor1 hb2 = hb >> 1 ;
    421                         register  int k = IJ(iplus,jplus,hb2);// BamgQuadtreeBox number of size hb2 contening i;j
    422                         register BamgQuadtreeBox * b0= b->b[k];
    423                         if ( ( b0 == 0) || (b0->nbitems == 0) )
    424                          break; // null box or empty   => break             
    425                         b=b0;   
    426                         i0 += I_IJ(k,hb2); // i orign of BamgQuadtreeBox
    427                         j0 += J_IJ(k,hb2); // j orign of BamgQuadtreeBox
    428                         hb = hb2;
    429                   }
    430 
    431                 if ( n0 > 0)
    432                   { 
    433                         for(register int k=0;k<n0;k++)
    434                           {
    435                                 I2 i2 =  b->v[k]->i;
    436                                 //   try if is in the right direction --
    437                                 h0 = NORM(iplus,i2.x,jplus,i2.y);
    438                                 if (h0 <h) {
    439                                         h = h0;
    440                                         vn = b->v[k];}
    441                           }
    442                         if (vn) return vn;
    443                   }
    444                 // general case -----
    445                 // INITIALISATION OF THE HEAP
    446                 l =0; // level
    447                 pb[0]= b;
    448                 pi[0]=b->nbitems>0 ?(int)  b->nbitems : 4  ;
    449                 ii[0]=i0;
    450                 jj[0]=j0;
    451                 h=hb;
    452                 do {   // walk on the tree 
    453                         b= pb[l];
    454                         while (pi[l]--) // loop on 4 element of the box
    455                           {           
    456                                 int k = pi[l];
    457 
    458                                 if (b->nbitems>0) // BamgVertex BamgQuadtreeBox none empty
    459                                   {
    460                                         I2 i2 =  b->v[k]->i;
    461                                         // if good direction when try --
    462 
    463                                         h0 = NORM(iplus,i2.x,jplus,i2.y);
    464                                         if (h0 <h)
    465                                           {
    466                                                 h = h0;
    467                                                 vn = b->v[k];
    468                                           }
    469                                   }
    470                                 else // Pointer BamgQuadtreeBox
    471                                   {
    472                                         register BamgQuadtreeBox *b0=b;
    473                                         if ((b=b->b[k]))
    474                                           {
    475                                                 hb >>=1 ; // div by 2
    476                                                 register Icoor1 iii = ii[l]+I_IJ(k,hb);
    477                                                 register Icoor1 jjj = jj[l]+J_IJ(k,hb);
    478 
    479                                                 if  (INTER_SEG(iii,iii+hb,iplus-h,iplus+h) && INTER_SEG(jjj,jjj+hb,jplus-h,jplus+h))
    480                                                   {
    481                                                         pb[++l]=  b;
    482                                                         pi[l]= b->nbitems>0 ?(int)  b->nbitems : 4  ;
    483                                                         ii[l]= iii;
    484                                                         jj[l]= jjj;
    485 
    486                                                   }
    487                                                 else
    488                                                  b=b0, hb <<=1 ;
    489                                           }
    490                                         else
    491                                          b=b0;
    492                                   }
    493                           }
    494                         hb <<= 1; // mul by 2
    495                 } while (l--);
    496 
    497                 return vn;
    498         }
    499         /*}}}*/
    500393        /*FUNCTION BamgQuadtree::NewBamgQuadtreeBox {{{*/
    501394        BamgQuadtree::BamgQuadtreeBox* BamgQuadtree::NewBamgQuadtreeBox(void){
Note: See TracChangeset for help on using the changeset viewer.