public List <TrajectorySegment> GetTrajectory(int lenght) { while (segments.Count < lenght) { segments.Add(Orbiter.CalculateTrajectorySegment(lastSegment.lastPosition, lastSegment.endVelocity)); } return(segments); }
///<summary> /// Calculates another step of trajectory ///</summary> public void Step() { // Robi to na zasadzie: // 1. Wzięcia elementu z początku listy // 2. Obliczenia dla niego nowych wartości (odświeżenia) // 3. Dodanie go na koniec listy TrajectorySegment segmentToRefresh = firstSegment; segmentToRefresh = Orbiter.CalculateTrajectorySegment(segments[segments.Count - 1].lastPosition, segments[segments.Count - 1].endVelocity); segments.RemoveAt(0); segments.Add(segmentToRefresh); }
public Trajectory(Vector2 initialPosition, Vector2 initialVelocity) { segments.Add(Orbiter.CalculateTrajectorySegment(initialPosition, initialVelocity)); }