]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/blobdiff - lib/LaTeX/TikZ/Formatter.pm
Call LaTeX::TikZ::Set::Rectangle explicitely in the formatter
[perl/modules/LaTeX-TikZ.git] / lib / LaTeX / TikZ / Formatter.pm
index 88bda48942b098a085c825d8370758a0ae3c800d..18abe13ef5ec872547aed19fd8f39de70f255db5 100644 (file)
@@ -55,8 +55,6 @@ has 'origin' => (
  does => 'Maybe[LaTeX::TikZ::Point]',
 );
 
-my $lts_tc = LaTeX::TikZ::Tools::type_constraint('LaTeX::TikZ::Set');
-
 my $find_mods;
 $find_mods = do {
  no warnings 'recursion';
@@ -64,13 +62,11 @@ $find_mods = do {
  Sub::Name::subname('find_mods' => sub {
   my ($set, $layers, $others) = @_;
 
-  if ($set->isa('LaTeX::TikZ::Set::Mod')) {
-   for ($set->mods) {
-    if ($_->isa('LaTeX::TikZ::Mod::Layer')) {
-     push @$layers, $_;
-    } else {
-     push @$others, $_;
-    }
+  for ($set->mods) {
+   if ($_->isa('LaTeX::TikZ::Mod::Layer')) {
+    push @$layers, $_;
+   } else {
+    push @$others, $_;
    }
   }
 
@@ -87,8 +83,6 @@ $find_mods = do {
 sub render {
  my $tikz = shift;
 
- $lts_tc->assert_valid($_) for @_;
-
  my $seq = LaTeX::TikZ::Set::Sequence->new(
   kids => \@_,
  );
@@ -103,7 +97,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}";
  }
@@ -115,24 +114,12 @@ sub render {
  );
 
  my @decls;
- if (@layers) {
-  my $layers_decl = LaTeX::TikZ::Mod::Layer->declare(@layers);
-  if (defined $layers_decl) {
-   chomp $layers_decl;
-   push @decls, $layers_decl;
-  }
- }
- for (@other_mods) {
-  my $decl = $_->declare($tikz);
-  if (defined $decl) {
-   chomp $decl;
-   push @decls, $decl;
-  }
- }
+ push @decls, LaTeX::TikZ::Mod::Layer->declare(@layers) if  @layers;
+ push @decls, $_->declare($tikz)                        for @other_mods;
 
  my @content = (
   "\\begin{tikzpicture}",
-  do { my $s = $seq->draw($tikz); chomp $s; $s },
+  @{ $seq->draw($tikz) },
   "\\end{tikzpicture}",
  );