default: all
-all: maxprintable.ps minprintable.ps regions.ps layout-test.ps \
+all: maxprintable.ps minprintable.ps boundings.ps layout-test.ps \
$(addprefix a4-test-,$(addsuffix .ps, b m t)) \
$(addprefix layout-test-,$(addsuffix .ps, b m t))
./generate-board faces.plag input-graph $o
minprintable.ps: generate-board faces.plag input-graph misc-data.pl Parse.pm
- ./generate-board -XrPrintableAll faces.plag input-graph $o
+ ./generate-board -XbPrintableAll faces.plag input-graph $o
-regions.ps: generate-board faces.plag input-graph misc-data.pl Parse.pm
- ./generate-board -XR faces.plag input-graph $o
+boundings.ps: generate-board faces.plag input-graph misc-data.pl Parse.pm
+ ./generate-board -XB faces.plag input-graph $o
layout-test.ps: maxprintable.ps Makefile Parse.pm
./generate-board -XW faces.plag input-graph $o
use Parse;
our $xopts = '';
-our $region = 'Entire';
+our $bounding = 'Entire';
our $facesf;
our %vxname2pos; # $vxname2pos{VXNAME} = Math::GSL::Vector
-our %r; # $r{PrintRegion...}[0..3] = points
+our %bb; # $r{Bounding...}[0..3] = points
sub TAU { M_PI * 2.0; }
sub MM2PT { 72.0 / 25.4; }
return $r;
}
-sub regions() {
- $r{Entire} = [ 0,0, $a4_h, $a4_w + $a3_h ];
- $r{PageB} = [ 0,0, $a4_h, $a4_w ];
+sub computeboundings() {
+ $bb{Entire} = [ 0,0, $a4_h, $a4_w + $a3_h ];
+ $bb{PageB} = [ 0,0, $a4_h, $a4_w ];
my $page2minprintable = sub {
my (@p) = @{ $_[0] };
[ $p[0] + $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],
+ $bb{PrintableB} = $page2minprintable->($bb{PageB});
+ my $mt_offset = $bb{PrintableB}[3] - $max_printeredge;
+ $bb{PageMT} = [ 0, $mt_offset, $a4_h, $mt_offset + $a3_h ];
+ $bb{PrintableMT} = $page2minprintable->($bb{PageMT});
+ $bb{PrintableAll} = [
+ @{ $bb{PrintableB} }[0..1],
+ @{ $bb{PrintableMT} }[2..3],
];
}
-sub showregions () {
- return unless $xopts =~ m/R/;
+sub showboundings () {
+ return unless $xopts =~ m/B/;
o(" grestore gsave\n");
o(" 0 setgray");
my $i = 0;
my $on = 2;
my $off = 9;
- foreach my $rname (sort keys %r) {
+ foreach my $bname (sort keys %bb) {
+ o(" % $bname\n");
o(" [ $on $off ] ".($i * ($on+$off))," setdash newpath\n");
- my @p = @{ $r{$rname} };
+ my @p = @{ $bb{$bname} };
o(" $p[0] $p[0] moveto\n");
o(" $p[2] $p[0] lineto\n");
o(" $p[2] $p[3] lineto\n");
}
sub preamble() {
- my $r = $r{$region}; confess $region unless $r;
+ my $bb = $bb{$bounding}; confess $bounding unless $bb;
o_amble(<<END);
&!PS-Adobe-3.0
-&&BoundingBox @$r
+&&BoundingBox @$bb
&&Pages: 1
&&EndComments
&&BeginProlog
#----- main program -----
$xopts = shift @ARGV if $ARGV[0] =~ s/^-X//;
-$region = $1 if $xopts =~ s/r(\w+)//;
+$bounding = $1 if $xopts =~ s/b(\w+)//;
($facesf, @ARGV) = @ARGV or die;
parse_input_graph();
transform_coordinates();
adjust_nz();
-regions();
+computeboundings();
preamble();
fill_faces();
edge_faces();
sea_track();
hs_initial();
play_hint();
-showregions();
+showboundings();
postamble();
print STDERR Dumper(\%region) if $ENV{'GENERATE_BOARD_DUP'};