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