protected void reheapVoronoi(int i, int k) {
		int j = i;
		int son;

		while (2*j <= k) {
			if (2*j+1 <= k)
				if ( (vsites[2*j].coord.y > vsites[2*j+1].coord.y) ||
						(vsites[2*j].coord.y == vsites[2*j+1].coord.y &&
						vsites[2*j].coord.x > vsites[2*j+1].coord.x) )
					son = 2*j;
				else
					son = 2*j + 1;
			else
				son = 2*j;

			if ( (vsites[j].coord.y < vsites[son].coord.y) ||
					(vsites[j].coord.y == vsites[son].coord.y &&
					vsites[j].coord.x < vsites[son].coord.x) ) {
				SiteVoronoi exchange = vsites[j];
				vsites[j] = vsites[son];
				vsites[son] = exchange;
				j = son;
			} else
				return;
		}
	}