demo-crop.rs
885 B · rust · 24 lines
1use mrlycore::colors::{shades, ORANGE};2use mrlycore::errors::Result;3use mrlyfig::{iso, save, Board};4use mrlymath::shape::{self, Frac, Region};5use mrlymath::three::{designs, Cell3d};67fn main() -> Result<()> {8 let mut board = Board::square();9 let frame = board.frame(0.08);10 let sponge = designs::create(23, 3, 3, 2)?;11 assert_eq!(sponge.width(), 27);12 assert_eq!(sponge.types().sum(), 8000);13 let cut = shape::named("octahedron", 3, Frac::new(1, 2))?;14 let tally = shape::census(&cut, sponge.types());15 let kept = Cell3d::new(shape::crop(sponge.types(), &cut, true));16 assert_eq!(17 kept.types().sum() as usize,18 tally.filled[Region::In as usize] + tally.filled[Region::Cut as usize]19 );20 assert!(kept.types().sum() < 8000);21 iso::draw(&mut board, frame, &kept, shades(ORANGE), None);22 save("demo-crop", &board)?;23 Ok(())24}