diff --git a/experiments/2024-10-30/src/main.rs b/experiments/2024-10-30/src/main.rs index 847b1612d..935fdab7a 100644 --- a/experiments/2024-10-30/src/main.rs +++ b/experiments/2024-10-30/src/main.rs @@ -1,4 +1,47 @@ +use std::fs::File; + fn main() -> anyhow::Result<()> { - println!("Hello, world!"); + let vertices = [ + [-0.5, -0.5, -0.5], // 0 + [0.5, -0.5, -0.5], // 1 + [-0.5, 0.5, -0.5], // 2 + [0.5, 0.5, -0.5], // 3 + [-0.5, -0.5, 0.5], // 4 + [0.5, -0.5, 0.5], // 5 + [-0.5, 0.5, 0.5], // 6 + [0.5, 0.5, 0.5], // 7 + ] + .into_iter() + .map(|[x, y, z]| threemf::model::Vertex { x, y, z }) + .collect(); + + let triangles = [ + [0, 4, 6], // left + [0, 6, 2], + [1, 3, 7], // right + [1, 7, 5], + [0, 1, 5], // front + [0, 5, 4], + [2, 7, 3], // back + [2, 6, 7], + [0, 2, 1], // bottom + [1, 2, 3], + [4, 5, 7], // top + [4, 7, 6], + ] + .into_iter() + .map(|[v1, v2, v3]| threemf::model::Triangle { v1, v2, v3 }) + .collect(); + + let mesh = threemf::Mesh { + vertices: threemf::model::Vertices { vertex: vertices }, + triangles: threemf::model::Triangles { + triangle: triangles, + }, + }; + + let output = File::create("output.3mf")?; + threemf::write(output, mesh)?; + Ok(()) }