From: Ian Jackson Date: Fri, 1 Mar 2019 12:58:33 +0000 (+0000) Subject: break out facepath X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=1f39accc8ec7b1236bc8f9813b77b39827c44dc7;p=pandemic-rising-tide.git break out facepath --- diff --git a/generate-board b/generate-board index 5b7fa99..dd1455e 100755 --- a/generate-board +++ b/generate-board @@ -264,20 +264,25 @@ sub psvec ($) { sprintf "%20.6f %20.6f", $pos->get(0),$pos->get(1) } +sub face_path ($) { + my ($rr) = @_; + o("% $rr->{Name}\n"); + o(" newpath\n"); + my $xto = 'moveto'; + foreach my $vertex (@{ $rr->{Polygon} }) { + my $pos = $vertex->{Pos}; + o(sprintf " %s %s\n", psvec($pos), $xto); + $xto = 'lineto'; + } + o(" closepath\n"); +} + sub write_face_edges() { o("5 setlinewidth 1 setlinejoin\n"); foreach my $rr (values %region) { next if $rr->{Name} eq 'L'; - o("% $rr->{Name}\n"); - o(" newpath\n"); - my $xto = 'moveto'; + face_path($rr); # xxx ordering: must do all fills then all strokes - foreach my $vertex (@{ $rr->{Polygon} }) { - my $pos = $vertex->{Pos}; - o(sprintf " %s %s\n", psvec($pos), $xto); - $xto = 'lineto'; - } - o(" closepath\n"); my $chex = $c{Colours}{$rr->{Colour}}; if ($chex) { o(" gsave ");