From b0875f0a313eca8f25947fd799729a503d3d4607 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 4 Mar 2019 02:00:43 +0000 Subject: [PATCH] wip regions --- Makefile | 2 +- generate-board | 33 ++++++++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index d9e0cc9..1e964b6 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,7 @@ maxprintable.ps: generate-board faces.plag input-graph misc-data.pl Parse.pm ./generate-board faces.plag input-graph $o minprintable.ps: generate-board faces.plag input-graph misc-data.pl Parse.pm - ./generate-board -XM faces.plag input-graph $o + ./generate-board -XrPrintableAll faces.plag input-graph $o layout-test.ps: maxprintable.ps Makefile Parse.pm ./generate-board -XW faces.plag input-graph $o diff --git a/generate-board b/generate-board index 70a4e3a..0594577 100755 --- a/generate-board +++ b/generate-board @@ -17,8 +17,10 @@ BEGIN { unshift @INC, qw(.); } use Parse; our $xopts = ''; +our $region = 'Entire'; our $facesf; our %vxname2pos; # $vxname2pos{VXNAME} = Math::GSL::Vector +our %r; # $r{PrintRegion...}[0..3] = points sub TAU { M_PI * 2.0; } sub MM2PT { 72.0 / 25.4; } @@ -29,7 +31,7 @@ our $a4_w = 595; our $a4_h = 842; our $a3_h = 1190; -our $max_printeredge = 5.50; +our $max_printeredge = 5.50 * MM2PT; # ----- region names from plag, incl. reverse mapping ----- @@ -312,6 +314,26 @@ sub pscolour ($;$) { return $r; } +sub regions() { + $r{Entire} = [ 0,0, $a4_h, $a4_w + $a3_h ]; + $r{PageB} = [ 0,0, $a4_h, $a4_w ]; + my $page2minprintable = sub { + my (@p) = @{ $_[0] }; + [ $p[0] + $max_printeredge, + $p[1] + $max_printeredge, + $p[2] - $max_printeredge, + $p[3] - $max_printeredge ]; + }; + $r{PrintableB} = $page2minprintable->($r{PageB}); + my $mt_offset = $r{PrintableB}[3] - $max_printeredge; + $r{PageMT} = [ 0, $mt_offset, $a4_h, $mt_offset + $a3_h ]; + $r{PrintableMT} = $page2minprintable->($r{PageMT}); + $r{PrintableAll} = [ + @{ $r{PrintableB} }[0..1], + @{ $r{PrintableMT} }[2..3], + ]; +} + sub o_amble (@) { # CPerl-mode does a really awful thing with %s in the preamble # and postamble, causing constant useless flashing @@ -322,12 +344,10 @@ sub o_amble (@) { } sub preamble() { - my $tprinteredge = ($xopts =~ m/M/ ? $max_printeredge : 0) * MM2PT; - my $xmax = $a4_h - $tprinteredge; - my $ymax = ($a4_w + $a3_h) - 2 * $max_printeredge - $tprinteredge; + my $r = $r{$region}; confess $region unless $r; o_amble(<