Johann Woelper 8 роки тому
батько
коміт
e57b180845
1 змінених файлів з 23 додано та 23 видалено
  1. 23 23
      src/main.rs

+ 23 - 23
src/main.rs

@@ -29,7 +29,7 @@ impl Point {
     }
 }
 
-#[derive(Default)]
+#[derive(Default, Debug)]
 struct Track {
     name: String,
     points: Vec<Point>,
@@ -68,22 +68,27 @@ impl Track {
     }
 
     fn truncate_by_length(&mut self, length_km: f64) {
-        let mut sum = 0.0;
-        let mut prev_point = &self.points[0];
+        // let mut sum = 0.0;
+        // let mut prev_point = &self.points[0];
+
+        let maxpts = 1;
+
+        for i in 0..self.points.len() {
+            println!("len {:?}", self.len());
+            // let d = dist(prev_point, &self.points[i]);
+            // sum += d;
+            // prev_point = &self.points[i];
+
+            if self.len() > length_km {
+                self.points.remove(0);
+            }
 
-        for i in self.points.len()..0 {
-            println!("{:?}", self.points[i]);
-            let d = dist(prev_point, &self.points[i]);
-            sum += d;
-            prev_point = &self.points[i];
         }
     }
 
     fn parse(&mut self) {
-        let mut sum_time = Duration::from_std(stdDuration::new(0, 0)).unwrap();
-        let mut sum_dist = 0.0;
-        let mut prev_point = &self.points[0];
-        let mut prev_time = &self.points[0].time;
+        // let mut prev_point = &self.points[0];
+        // let mut prev_time = &self.points[0].time;
 
         let mut fifo_track = Track {
             ..Default::default()
@@ -92,19 +97,14 @@ impl Track {
         let mut i = 0;
 
         for pt in &self.points {
-            i = i + 1;
-            if i > 10 {
-                break;
-            }
-            let timespan = prev_time.signed_duration_since(pt.time);
-            sum_time = sum_time.checked_sub(&timespan).unwrap();
-            prev_time = &pt.time;
-            let d = dist(prev_point, pt);
-            sum_dist += d;
-            prev_point = pt;
+            i = i + 1; if i > 109 {break};
+
 
             fifo_track.points.push(pt.clone());
+            fifo_track.truncate_by_length(0.1);
+
             println!("fifo len {:?}", fifo_track.points.len());
+            // println!("fifo trk {:?}", fifo_track.points.len());
         }
     }
 }
@@ -209,5 +209,5 @@ fn main() {
     println!("Distance: {:?} km", trk.len());
     println!("Duration: {:?} h", trk.time().num_minutes() as f32 / 60.0);
     println!("Speed: {:?} Km/h", trk.speed());
-    // trk.parse();
+    trk.parse();
 }