]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/blobdiff - lib/LaTeX/TikZ/Formatter.pm
Complete patterns implementation, interface and tests
[perl/modules/LaTeX-TikZ.git] / lib / LaTeX / TikZ / Formatter.pm
index da0656c288fbe4bf358bc4e6066d6b4ca8cc98eb..b3c242ad2ae5aa8f96c4fd50adddcc2f9a45e8eb 100644 (file)
@@ -51,10 +51,20 @@ has 'height' => (
 );
 
 has 'origin' => (
- is   => 'ro',
- does => 'Maybe[LaTeX::TikZ::Point]',
+ is     => 'ro',
+ isa    => 'Maybe[LaTeX::TikZ::Point::Autocoerce]',
+ coerce => 1,
 );
 
+sub id {
+ my $tikz = shift;
+
+ join $;, map {
+  my $val = $tikz->$_;
+  defined($val) ? "$val" : '(undef)';
+ } qw/unit format scale width height origin/;
+}
+
 my $find_mods;
 $find_mods = do {
  no warnings 'recursion';
@@ -97,7 +107,12 @@ sub render {
  my $h = $tikz->height;
  my $canvas = '';
  if (defined $w and defined $h) {
-  $seq->clip(Tikz->rectangle(Tikz->point(0) => [ $w, $h ]));
+  require LaTeX::TikZ::Set::Rectangle;
+  $seq->clip(LaTeX::TikZ::Set::Rectangle->new(
+   from   => 0,
+   width  => $w,
+   height => $h,
+  ));
   $_ = $tikz->len($_) for $w, $h;
   $canvas = ",papersize={$w,$h},body={$w,$h}";
  }
@@ -154,6 +169,12 @@ sub thickness {
  0.8 * $width * ($tikz->scale / 5);
 }
 
+use LaTeX::TikZ::Interface formatter => sub {
+ shift;
+
+ __PACKAGE__->new(@_);
+};
+
 __PACKAGE__->meta->make_immutable;
 
 =head1 AUTHOR