From 02348ebe9e56c4b4d8558a5c86c709006864750c Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Wed, 30 Oct 2024 01:25:09 +0100 Subject: [PATCH] Move `export` to dedicated module --- experiments/2024-10-30/src/export.rs | 28 +++++++++++++++++++++++++++ experiments/2024-10-30/src/main.rs | 1 + experiments/2024-10-30/src/model.rs | 29 +--------------------------- 3 files changed, 30 insertions(+), 28 deletions(-) create mode 100644 experiments/2024-10-30/src/export.rs diff --git a/experiments/2024-10-30/src/export.rs b/experiments/2024-10-30/src/export.rs new file mode 100644 index 000000000..1af4dfce1 --- /dev/null +++ b/experiments/2024-10-30/src/export.rs @@ -0,0 +1,28 @@ +use std::fs::File; + +pub fn export( + vertices: impl IntoIterator, + triangles: impl IntoIterator, +) -> anyhow::Result<()> { + let vertices = vertices + .into_iter() + .map(|[x, y, z]| threemf::model::Vertex { x, y, z }) + .collect(); + + let triangles = triangles + .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(()) +} diff --git a/experiments/2024-10-30/src/main.rs b/experiments/2024-10-30/src/main.rs index 72c6ddbe1..accaf2ec6 100644 --- a/experiments/2024-10-30/src/main.rs +++ b/experiments/2024-10-30/src/main.rs @@ -1,4 +1,5 @@ mod model; +mod export; fn main() -> anyhow::Result<()> { model::model()?; diff --git a/experiments/2024-10-30/src/model.rs b/experiments/2024-10-30/src/model.rs index 265c3018c..b2f44b9d6 100644 --- a/experiments/2024-10-30/src/model.rs +++ b/experiments/2024-10-30/src/model.rs @@ -1,4 +1,4 @@ -use std::fs::File; +use crate::export::export; pub fn model() -> anyhow::Result<()> { let vertices = [ @@ -31,30 +31,3 @@ pub fn model() -> anyhow::Result<()> { Ok(()) } - -fn export( - vertices: impl IntoIterator, - triangles: impl IntoIterator, -) -> anyhow::Result<()> { - let vertices = vertices - .into_iter() - .map(|[x, y, z]| threemf::model::Vertex { x, y, z }) - .collect(); - - let triangles = triangles - .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(()) -}