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