Esempio n. 1
0
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";
	}
}
Esempio n. 2
0
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);
			}
		}

	}
}
Esempio n. 3
0
//------------------------------------------------------------------------------
void Grid::initialize()
{
    update();
    createGrid();
    setNeighbours();
}