public Vec3D track(float s, float v) {
		// s = sight, v = view/2
		Vec3D vec = new Vec3D();
		float count = 0.0f;

		neighbours = p5.manager.pheroKDTree.getNearestNeighbors(this, 150, true);

		if (neighbours != null) {
			for (int i = 0; i < neighbours.length; i++) {
				

				Phero cur = (Phero) neighbours[i].point();
				if(cur.pos.distanceTo(this.pos) < s) {
					Vec3D move = cur.pos.sub(this.pos);
					float agl = vel.angleBetween(move, true);
					if ((agl < v) && (agl > -v)) {
						vec.addSelf(cur.pos);
						count++;
					}
				}
			}
			if (count > 0) {
				vec.scaleSelf(1 / count);
				vec.subSelf(this.pos);
				vec.limit(maxF);
			}
		}
		return vec;
	}