diff --git a/on-host/arpist-traject/src/semantics.rs b/on-host/arpist-traject/src/semantics.rs index b42f3ef78e3c0c226dee0f82af7ac1d6b787c143..c1773d89c8e4cc9cd2226dab75baae1c34265c09 100644 --- a/on-host/arpist-traject/src/semantics.rs +++ b/on-host/arpist-traject/src/semantics.rs @@ -97,17 +97,12 @@ impl Executor { // get the frequency let freq = freq.ok_or("Missing frequency.")?; // set last position as the initial position - let starting_pos = if self.trajectory.points.is_empty() { - let (ix, iy, iz) = self.initial_coordinates; - Point::new(ix, iy, iz, init_t) - } else { - self.trajectory.points.last().unwrap().clone() - }; + let starting_pos = self.trajectory.points.last().unwrap().clone(); let end_t = *timeref; if end_t > init_t { let mut prev_t = init_t; - let mut t = prev_t; - while t < end_t { + let mut t = prev_t + 1.0 / freq; + while t <= end_t { let (x, y, z) = generator.generate(t - init_t); let mut p = Point::new(x, y, z, t); p.absolute_from(&starting_pos); @@ -124,6 +119,12 @@ impl Executor { } None => { self.last_timeref = Some(*timeref); + self.trajectory.push(Point::new( + self.initial_coordinates.0, + self.initial_coordinates.1, + self.initial_coordinates.2, + *timeref, + )); } } }