All pastes #86590 Raw Edit

Untitled

public cpp v1 · immutable
·published 2006-07-13 01:09 UTC
rendered paste body
void Stack::addPlateauNeighborRecursive(double value,int h,int i,int j,                                        std::vector< std::vector<                                        std::vector<int> > > &tmpFlag,                                        std::vector< std::vector<int> >                                        &walkTmp) {  //Check only nearest neighbors  for(int a=-1 ; a<=1 ; a+=2 ) {    int hh = h+a;    if( hh>=0 && hh<D() && pix(hh,i,j)==value && !tmpFlag[hh][i][j] ) {      tmpFlag[hh][i][j]=1;      std::vector<int> tmpPos(3);      tmpPos[0]=hh;tmpPos[1]=i;tmpPos[2]=j;      walkTmp.push_back( tmpPos );      addPlateauNeighborRecursive(value,hh,i,j,tmpFlag,walkTmp);    }    int ii = i+a;    if( ii>=0 && ii<H() && pix(h,ii,j)==value && !tmpFlag[h][ii][j] ) {      tmpFlag[h][ii][j]=1;      std::vector<int> tmpPos(3);      tmpPos[0]=h;tmpPos[1]=ii;tmpPos[2]=j;      walkTmp.push_back( tmpPos );      addPlateauNeighborRecursive(value,h,ii,j,tmpFlag,walkTmp);    }    int jj = j+a;    if( jj>=0 && jj<W() && pix(h,i,jj)==value && !tmpFlag[h][i][jj] ) {      tmpFlag[h][i][jj]=1;      std::vector<int> tmpPos(3);      tmpPos[0]=h;tmpPos[1]=i;tmpPos[2]=jj;      walkTmp.push_back( tmpPos );      addPlateauNeighborRecursive(value,h,i,jj,tmpFlag,walkTmp);    }  }}