From 92c33b360f9f69d999df02c021c9b4fcea6091aa Mon Sep 17 00:00:00 2001
From: Federico Lolli <federico.lolli@skywarder.eu>
Date: Sun, 17 Mar 2024 01:48:00 +0100
Subject: [PATCH] Fixed missing last point on traj

---
 on-host/arpist-traject/src/semantics.rs | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/on-host/arpist-traject/src/semantics.rs b/on-host/arpist-traject/src/semantics.rs
index b42f3ef..c1773d8 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,
+                            ));
                         }
                     }
                 }
-- 
GitLab