+ my @points = $set->points;
+ return undef unless @points;
+
+ $points[-1]->end;
+}
+
+LaTeX::TikZ::Interface->register(
+ polyline => sub {
+ shift;
+
+ __PACKAGE__->new(points => \@_);
+ },
+ closed_polyline => sub {
+ shift;
+
+ __PACKAGE__->new(points => \@_, closed => 1);
+ },
+);
+
+LaTeX::TikZ::Functor->default_rule(
+ (__PACKAGE__) => sub {
+ my ($functor, $set, @args) = @_;
+ $set->new(
+ points => [ map $_->$functor(@args), $set->points ],
+ closed => $set->closed,
+ );
+ }
+);