# esvg A document object model based SVG library for construction of vector graphics. Access is available to the attributes and tags allowing you to construct any SVG you need. Uses [Polygonical](https://docs.rs/polygonical/) for its shape representation ## Examples Construct a document and draw a circle ```rust,editable use esvg::page::Page; use esvg::{create_document, Element}; use polygonical::point::Point; let page = Page::A4(96); // 96 dpi let mut doc = create_document(&page); let mut group = Element::new("g"); group.set("class", "foo"); let mut circle = esvg::shapes::circle(page.center(), 50); circle.add_style("stroke", "red"); group.add(&circle); doc.add(&group); let expected = "\n \t \t\t \t "; assert_eq!(doc.to_pretty_string(), expected); ``` ## Features * Constructing SVGs in memory * Reading SVGs (Including comments and text nodes) * Writing SVGs (Including comments and text nodes) * Path objects * Text objects * Circles * Common page sizes built in ## Wanted features * Path data to polygons ## Things we explicitly won't support * Converting SVGs to other formats.