+LaTeX::TikZ::Interface->register(
+ pattern => sub {
+ my $class = shift;
+
+ my %args = @_;
+ if (exists $args{class}) {
+ $class = delete $args{class};
+ $class = __PACKAGE__ . '::' . $class unless $class =~ /::/;
+ (my $pm = $class) =~ s{::}{/}g;
+ $pm .= '.pm';
+ require $pm;
+ }
+
+ $class->new(%args);
+ },
+);