shapemaker/rendering/
layer.rs1use measure_time::debug_time;
2
3use crate::Layer;
4
5use super::renderable::SVGRenderable;
6
7impl SVGRenderable for Layer {
8 fn render_to_svg(
9 &self,
10 colormap: crate::ColorMapping,
11 cell_size: usize,
12 object_sizes: crate::graphics::objects::ObjectSizes,
13 id: &str,
14 ) -> anyhow::Result<svg::node::element::Element> {
15 debug_time!("render_to_svg");
16
17 let mut layer_group = svg::node::element::Group::new()
18 .set("class", "layer")
19 .set("data-layer", self.name.clone());
20
21 for (object_id, obj) in &self.objects {
22 layer_group = layer_group.add(obj.render_to_svg(
23 colormap.clone(),
24 cell_size,
25 object_sizes,
26 &[id, object_id].join("--"),
27 )?);
28 }
29
30 Ok(layer_group.into())
31 }
32}