public void checkFlyBy(double limit, double checkTime, double[] bodies)
			throws Exception {

		double t;
		int i;
		double limit2 = limit * limit;
		for (i = 0; i < this.bodies; i++) {
			bodies[i] = Double.NaN;
		}
		this.flag = 4;
		t = this.time + checkTime;
		double timeStep = Math.abs(this.timeStep);
		this.timeStep = (checkTime < 0.) ? -timeStep : timeStep;
		if (checkTime < 0) {
			while (this.time > t) {
				this.oneStep();
				for (i = 1; i < this.bodies; i++) {
					if (Funcions.dist2(this.position, 0, this.position, i * 3) < limit2) {
						bodies[i] = this.getTime();
					}
				}
			}
		} else {
			while (this.time < t) {
				this.oneStep();
				for (i = 1; i < this.bodies; i++) {
					if (Funcions.dist2(this.position, 0, this.position, i * 3) < limit2) {
						bodies[i] = this.getTime();
					}
				}
			}
		}
	}