#---------- read input image ----------
-our(%sz);
+our(%sz,%overall);
# $sz{X}
# $sz{Y}
+# $overall{X|Y}{Min|Max}
sub xpm_sizes () {
my ($rr,$xp,$xy);
}
}
}
+ foreach $xy (qw(X Y)) {
+ $overall{$xy}{Min}= $sz{$xy}-1;
+ $overall{$xy}{Max}= 0;
+ }
}
#---------- read input pixels ----------
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) {
#---------- output ----------
-our ($backgd);
-
sub cmapdata_output_all () {
my ($cmapname, $stuff, $cmap, $sname, $pixchars);
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};
$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);
}
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");