use brepkit_math::mat::Mat4;
use brepkit_operations::boolean::{BooleanOp, boolean};
use brepkit_operations::primitives::{make_box, make_cylinder};
use brepkit_operations::transform::transform_solid;
use brepkit_render::{ViewOpts, view_solid};
use brepkit_topology::Topology;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut topo = Topology::new();
let box_solid = make_box(&mut topo, 40.0, 40.0, 20.0)?;
let cyl = make_cylinder(&mut topo, 10.0, 35.0)?;
transform_solid(&mut topo, cyl, &Mat4::translation(20.0, 20.0, 0.0))?;
let solid = boolean(&mut topo, BooleanOp::Fuse, box_solid, cyl)?;
let opts = ViewOpts::new("brepkit viewer — box + cylinder (click a face)");
view_solid(&topo, solid, &opts)?;
Ok(())
}