use crate::Element;
use ::polygonical::point::Point;
pub fn circle(p: Point, radius: i32) -> Element {
let mut el = Element::new("circle");
el.set("cx", p.x);
el.set("cy", p.y);
el.set("r", radius);
el.set("fill", "none");
el
}
pub fn many_circles(points: Vec<Point>, radius: i32) -> Element {
let mut group = Element::new("g");
for p in points {
group.add(&circle(p, radius));
}
group
}
pub fn rectangle(center: Point, width: f64, height: f64) -> Element {
let mut el = Element::new("rect");
el.set("x", center.x - (width / 2.0));
el.set("y", center.y - (height / 2.0));
el.set("width", width);
el.set("height", height);
el
}
pub fn rounded_rectangle(center: Point, width: f64, height: f64, rounding: f64) -> Element {
let mut el = rectangle(center, width, height);
el.set("rx", rounding);
el.set("ry", rounding);
el
}
pub fn ellipse(center: Point, rx: f64, ry: f64) -> Element {
let mut el = Element::new("ellipse");
el.set("cx", center.x);
el.set("cy", center.y);
el.set("rx", rx);
el.set("ry", ry);
el
}