rscad_csg_bsp/primitives/
square.rs1use crate::*;
2use nalgebra::Point;
3
4pub fn square<T: Number>(size: T) -> Csg<T> {
6 rect(size, size)
7}
8
9pub fn rect<T: Number>(x: T, z: T) -> Csg<T> {
13 let two = T::one() + T::one();
14 let hx = x / two;
15 let hz = z / two;
16
17 Csg::from_polygons([Polygon::from_points(vec![
18 Point::from([-hx, T::zero(), -hz]),
19 Point::from([hx, T::zero(), -hz]),
20 Point::from([hx, T::zero(), hz]),
21 Point::from([-hx, T::zero(), hz]),
22 ])
23 .expect("Impossible")])
24}