From: Taran Nathan Date: Thu, 21 May 2026 21:58:21 +0000 (-0700) Subject: mo X-Git-Url: https://git.taranathan.com/?a=commitdiff_plain;h=b57cfbad6b210d0c24b05fc560bb7530bc636166;p=cart.git mo --- diff --git a/Cargo.lock b/Cargo.lock index 95c172e..29ef92f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -314,6 +314,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" +[[package]] +name = "roomy" +version = "0.0.0" +dependencies = [ + "anyhow", + "csv", + "nalgebra", + "serde", + "structs", +] + [[package]] name = "ryu" version = "1.0.23" diff --git a/roomy/Cargo.toml b/roomy/Cargo.toml index ff2fd8f..3c12f2e 100644 --- a/roomy/Cargo.toml +++ b/roomy/Cargo.toml @@ -3,4 +3,9 @@ name = "roomy" version = "0.0.0" edition = "2024" -[dependencies] \ No newline at end of file +[dependencies] +anyhow = "1.0.102" +csv = "1.4.0" +nalgebra = "0.34.2" +serde = { version = "1.0.228", features = ["derive"] } +structs = {path = "../structs"} diff --git a/roomy/src/main.rs b/roomy/src/main.rs index e7a11a9..60917bc 100644 --- a/roomy/src/main.rs +++ b/roomy/src/main.rs @@ -1,3 +1,33 @@ -fn main() { - println!("Hello, world!"); +use anyhow::{Result, bail}; +use csv::ReaderBuilder; +use nalgebra::{Point2, Rotation2, Vector2}; +use structs::*; + +fn main() -> Result<()> { + let mut reader = ReaderBuilder::new() + .has_headers(false) + .from_path("../generator/records.csv")?; + let records: std::result::Result, csv::Error> = + reader.deserialize::().collect(); + + let records = records?; + + let mut points: Vec> = vec![]; + + for record in records { + points.push(record_to_point(&record)); + } + + dbg!(points); + + Ok(()) +} + +fn record_to_point(record: &Record) -> Point2 { + let cart_pos = Point2::new(record.cart_pos.0, record.cart_pos.1); + let cart_rot = Rotation2::new(record.cart_rot); + + let distance: Vector2 = (cart_rot * Vector2::new(0.0, 1.0)) * record.distance; + + Point2::from(distance + Vector2::from(cart_pos.coords)) } diff --git a/structs/src/lib.rs b/structs/src/lib.rs index 2885a18..0af6770 100644 --- a/structs/src/lib.rs +++ b/structs/src/lib.rs @@ -7,10 +7,10 @@ pub struct Cart { pub cart_rot: Rotation2, } -#[derive(Debug, Serialize)] +#[derive(Debug, Serialize, Deserialize)] pub struct Record { pub cart_pos: (f64, f64), - ///radians + /// radians pub cart_rot: f64, pub distance: f64, }