From: ian Date: Mon, 27 Jun 2005 00:43:42 +0000 (+0000) Subject: explicit overall min/max X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=ba4260fd7d5f1d0d5cd1a3bb457843684f53f2e8;p=trains.git explicit overall min/max --- diff --git a/layout/plan-to-gui-data b/layout/plan-to-gui-data index 6b6e323..d9fa35c 100755 --- a/layout/plan-to-gui-data +++ b/layout/plan-to-gui-data @@ -135,9 +135,10 @@ sub ang2pixchars ($) { #---------- read input image ---------- -our(%sz); +our(%sz,%overall); # $sz{X} # $sz{Y} +# $overall{X|Y}{Min|Max} sub xpm_sizes () { my ($rr,$xp,$xy); @@ -150,6 +151,10 @@ print STDERR "xpm_sizes\n"; } } } + foreach $xy (qw(X Y)) { + $overall{$xy}{Min}= $sz{$xy}-1; + $overall{$xy}{Max}= 0; + } } #---------- read input pixels ---------- @@ -161,13 +166,15 @@ our(%p,$pp); sub xpmdata_pixel ($$$) { my ($style,$namerhs,$pcharstr)=@_; - my ($xp,$pk,$xy,$was); + my ($xp,$pk,$xy,$was,$mima); #printf STDERR "%s %s %s \`%s'", $pp, $style, $namerhs, $pcharstr; $xp= $xpmdata{$style}{$namerhs}; defined $xp or die "$pp: $style $namerhs ?"; foreach $xy (qw(X Y)) { - $xp->{$xy}{Min}= $p{$xy} if $p{$xy} < $xp->{$xy}{Min}; - $xp->{$xy}{Max}= $p{$xy} if $p{$xy} > $xp->{$xy}{Max}; + foreach $mima ($xp->{$xy}, $overall{$xy}) { + $mima->{Min}= $p{$xy} if $p{$xy} < $mima->{Min}; + $mima->{Max}= $p{$xy} if $p{$xy} > $mima->{Max}; + } } $was= $xp->{Pixels}{$p{Y}}{$p{X}}; if (defined($was) && $was gt $pcharstr) { @@ -399,8 +406,6 @@ cmaps_define(); #---------- output ---------- -our ($backgd); - sub cmapdata_output_all () { my ($cmapname, $stuff, $cmap, $sname, $pixchars); @@ -432,7 +437,6 @@ sub cmapdata_output_all () { sub xpmdata_output_all () { my ($style, $namerhs, $xp, $row, $pp, $xy, $pixel); my ($y, $cmap_data, $header_data, $cmapname); - $backgd= $xpmdata{'background'}{''}; foreach $style (sort keys %xpmdata) { foreach $namerhs (sort keys %{ $xpmdata{$style} }) { $xp= $xpmdata{$style}{$namerhs}; @@ -485,7 +489,7 @@ sub ppdr ($$$) { $xpmd= $xpmdata{$style}{$namerhs}; defined $xpmd or die "$style $cmap $namerhs ?"; return sprintf("{ %d-%d,%d-%d, p_%s_%s }", - (map { $xpmd->{$_}{Min}, $backgd->{$_}{Min} } qw(X Y)), + (map { $xpmd->{$_}{Min}, $overall{$_}{Min} } qw(X Y)), $cmap, $namerhs); } @@ -548,8 +552,8 @@ sub plandata_output_all () { oods('ui_plan_data', "const PlanData $gvarname= {\n". - " $backgd->{X}{Max}-$backgd->{X}{Min},". - " $backgd->{Y}{Max}-$backgd->{Y}{Min},". + " $overall{X}{Max}-$overall{X}{Min},". + " $overall{Y}{Max}-$overall{Y}{Min},". " p_background_,\n". " ".scalar(@segnames).", segments\n". "};\n");