experimental SVG-based video rendering engine made for music videos. React to MIDI or arbitrary signals from your DAW through "probe" VSTs
at main 861 B view raw
1use itertools::Itertools; 2use measure_time::debug_time; 3 4use super::{renderable::SVGRenderable, svg}; 5use crate::Layer; 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> { 15 debug_time!("render_to_svg/layer"); 16 let mut group = svg::tag("g").class("layer").dataset("layer", &self.name); 17 for (object_id, object) in 18 self.objects.iter().sorted_by_key(|(oid, _)| (*oid).clone()) 19 { 20 group.add(object.render_to_svg( 21 colormap.clone(), 22 cell_size, 23 object_sizes, 24 &format!("{}--{}", id, object_id), 25 )?); 26 } 27 Ok(group.into()) 28 } 29}