void KdTree::updateNeighbours() { for(int i = 0; i < pointNodes.size(); i++) { int currentBest[MAXNEARBY]; float currentBestDistancesSq[MAXNEARBY]; //std::fill_n(currentBest, MAXNEARBY, -1); PointNode* pn = &pointNodes[i]; int nearbyCount = 0; findNearby(pn->p, root, currentBest, currentBestDistancesSq, nearbyCount, 0); std::cout << "owner " << pn->p->pointId << " neighbours: "; for(int j = 0; j < nearbyCount; j++) { setNeighbours(pn->p->pointId, currentBest[j]); } std::cout << "\n\n"; } }
void SandPile::testReached(int point,std::vector<int> &lat,std::vector<int> &critical){ if(lat[point]>zk){ lat[point]-=2*dimension; increaseNeighbours(point,lat); critical[point] = 1; setNeighbours(point,critical,1); int neighbourNr[2*dimension]; neighboursNumbers(point,neighbourNr); for(int i=0;i<2*dimension;i++){ if(neighbourNr[i]>=0){ testReached(neighbourNr[i],lat,critical); } } } }
//------------------------------------------------------------------------------ void Grid::initialize() { update(); createGrid(); setNeighbours(); }