From: Ian Jackson Date: Tue, 12 Jan 2021 00:56:27 +0000 (+0000) Subject: otterlib: wip preview, reorg a bit nfc X-Git-Tag: otter-0.3.0~75 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=41d8d3e9cbb29beb62868f7e5d7f0f4e602f2162;p=otter.git otterlib: wip preview, reorg a bit nfc Signed-off-by: Ian Jackson --- diff --git a/src/bin/otterlib.rs b/src/bin/otterlib.rs index 193fdd77..6016fc4d 100644 --- a/src/bin/otterlib.rs +++ b/src/bin/otterlib.rs @@ -38,7 +38,9 @@ fn preview(items: Vec) { struct Prep { spec: ItemSpec, pc: Box, - uos: Vec + uos: Vec, + bbox: Vec>, + size: Vec, }; let pieces : Vec = items.into_iter().map(|it| { @@ -50,7 +52,19 @@ fn preview(items: Vec) { let uos = uos.into_iter().map(|uo| uo.opname).collect::>(); let spec = spec.clone(); - Ok::<_,AE>(Prep { spec, pc, uos }) + let bbox = pc + .bbox_approx(); + let mut bbox = bbox + .iter() + .map(|PosC(xy)| xy.iter().map(|&p| p as f64).collect::>()) + .collect::>(); + for xy in &mut bbox[0] { *xy -= BORDER } + for xy in &mut bbox[1] { *xy += BORDER } + let size = izip!(&bbox[0], &bbox[1]) + .map(|(min,max)| max-min) + .collect::>(); + + Ok::<_,AE>(Prep { spec, pc, uos, bbox, size }) })().with_context(|| format!("{:?}", &spec)) }).collect::,_>>()?; @@ -58,7 +72,7 @@ fn preview(items: Vec) { let max_uos = pieces.iter().map(|s| s.uos.len()).max().unwrap_or(0); println!(r#""#); - for Prep { spec, pc, uos } in &pieces { + for Prep { spec, pc, uos, bbox, size } in &pieces { println!(r#""#); println!(r#"
{}"#, &spec.lib); println!(r#"{}"#, &spec.item); @@ -70,18 +84,6 @@ fn preview(items: Vec) { face }; - let bbox = pc - .bbox_approx(); - let mut bbox = bbox - .iter() - .map(|PosC(xy)| xy.iter().map(|&p| p as f64).collect::>()) - .collect::>(); - for xy in &mut bbox[0] { *xy -= BORDER } - for xy in &mut bbox[1] { *xy += BORDER } - let size = izip!(&bbox[0], &bbox[1]) - .map(|(min,max)| max-min) - .collect::>(); - for face in 0..(if only1 { 1 } else { max_faces }) { print!(r#"