-{
- our %mods;
- our $last_mod = 0;
-
- sub mods_unique {
- my ($set) = @_;
-
- my (@mods, $last_layer);
-MOD:
- for my $mod ($set->mods) {
- my $is_layer = $ltml_tc->check($mod);
- $last_layer = $mod if $is_layer;
- my $tag = $mod->tag;
- my $old = $mods{$tag} || [];
- for (@$old) {
- next MOD if $_->[0]->cover($mod);
- }
- push @{$mods{$tag}}, [ $mod, $last_mod++, $is_layer ];
- push @mods, $mod;
- }
-
- if ($last_layer) {
- # Clips and mods don't propagate through layers. Hence if a layer is set,
- # force their reuse.
- @mods = $last_layer;
- push @mods, map $_->[0],
- sort { $a->[1] <=> $b->[1] }
- grep !$_->[2],
- map @$_,
- values %mods;
- }
-
- return @mods;
- }
+around 'draw' => sub {
+ my ($orig, $set, $tikz, $pcxt) = @_;